Glossaire
- 302 Found
- Le statut HTTP qui dit au navigateur que la cible est temporaire. Le navigateur suit l’en-tête
Locationet réutilise l’URL courte la fois suivante. - Un raccourcisseur d’URL
- 429 Too Many Requests
- Le statut HTTP d’un client qui a envoyé trop de requêtes dans un temps donné. Il peut porter un en-tête
Retry-Afterqui dit quand réessayer. - Un limiteur de débit
- Ancre
- Une copie du dernier hash écrite à un endroit que les admins de la base ne peuvent pas modifier, qui sert plus tard à vérifier la chaîne.
- Un journal d’audit
- Appartenance aplatie
- Pour chaque utilisateur, la liste calculée d’avance de toutes ses équipes, directes ou via des équipes imbriquées.
- Un système de permissions
- Archivage du WAL
- PostgreSQL confie chaque segment terminé du journal d’écriture anticipée (16 Mo par défaut) à une commande qui le copie hors du serveur. Une sauvegarde de base plus ces segments permet de reconstruire la base à n’importe quel moment entre les deux.
- Un plan de sauvegarde
- Arriéré
- Les tâches qui attendent dans la file et qu’aucun worker n’a encore prises (en anglais : backlog).
- Une file qui se remplit
- Au moins une fois
- L’expéditeur réessaie tant qu’il n’a pas d’accusé de réception, donc le destinataire peut recevoir le même événement plusieurs fois.
- Les notifications
- Au moins une fois (at-least-once)
- Chaque tâche s’exécute une fois ou plus. Un crash peut la faire tourner de nouveau, mais elle ne tourne jamais zéro fois.
- Un planificateur de tâches
- Autorisation et capture
- Deux appels sur la carte : l’autorisation bloque le montant sur la carte, la capture prend l’argent plus tard.
- Une commande à travers plusieurs services
- Autorité centrale
- Le seul processus qui décide, pour un document, dans quel ordre les steps s’appliquent.
- Éditer un document à plusieurs
- Backfill
- Une tâche qui remplit une nouvelle colonne pour les lignes qui existaient avant elle, par petits lots.
- Déployer sans interruption
- Backoff exponentiel
- Chaque nouvel essai attend deux fois plus longtemps que le précédent, en partant de 1 minute.
- Envoyer des webhooks
- Bail (lease)
- Une réservation de tâche qui prend fin à une heure fixée, stockée dans la ligne de la tâche en
locked_until. Si le worker n’a pas fini avant, un autre worker peut prendre la tâche. - Un planificateur de tâches
- Balises Open Graph
- Des balises
<meta property="og:title">etog:imagedans le<head>d’une page, qui donnent le titre et l’image à afficher dans un aperçu. - Les aperçus de liens
- Bascule
- Le moment où l’application arrête d’écrire dans l’ancienne base et commence à écrire dans la nouvelle.
- Changer de base de données
- Base62
- Écrire une valeur avec les 62 caractères
0-9,a-zetA-Z. Un code de n caractères a 62 puissance n valeurs possibles. - Un raccourcisseur d’URL
- Binlog
- Le journal binaire de MySQL : chaque modification validée, dans l’ordre des commits. MySQL s’en sert pour la réplication.
- Changer de base de données
- Bloc
- Une tranche de taille fixe d’un fichier, nommée par le hash de ses octets : deux appareils comparent ainsi un fichier bloc par bloc.
- Synchroniser des fichiers
- Blocage (hold)
- Une place réservée à un fan pendant 10 minutes, le temps qu’il paie. Personne d’autre ne peut la bloquer ni l’acheter avant la fin du blocage.
- Réserver des places de concert
- Budget d’erreur
- Les échecs que le SLO autorise sur sa période. À 99,9 %, c’est 0,1 % des requêtes.
- Mesurer un service
- Burn rate
- La vitesse à laquelle le service consomme son budget d’erreur. Un burn rate de 1 consomme tout le budget en exactement 30 jours.
- Mesurer un service
- Canal
- Un moyen de joindre un utilisateur : l’e-mail, le push sur le téléphone, ou la liste de notifications dans l’appli.
- Les notifications
- Chaîne de hachage
- Chaque enregistrement stocke un hash calculé sur son contenu et sur le hash de l’enregistrement précédent : changer un enregistrement change tous les hash suivants.
- Un journal d’audit
- Change data capture (CDC)
- Lire le journal des modifications d’une base et envoyer chaque modification ailleurs sous forme d’événement.
- Changer de base de données
- Changement cassant
- Un changement après lequel du code qui marchait contre l’API ne marche plus : un champ supprimé, un champ renommé, un champ qui change de type.
- Changer une API publique
- Changement de statut
- Un utilisateur qui passe de hors ligne à en ligne, ou l’inverse. Un heartbeat d’un utilisateur déjà en ligne ne compte pas comme un changement.
- Le statut en ligne
- Check
- La question « l’utilisateur U a-t-il la relation R sur l’objet O ? », à laquelle on répond en suivant les tuples de O jusqu’à U.
- Un système de permissions
- Circuit breaker
- Une enveloppe autour d’un appel qui compte les échecs récents. Au-delà d’un seuil, elle cesse de faire l’appel pendant un temps et échoue tout de suite, pour que l’appelant passe directement au repli.
- Quand une dépendance tombe
- Clé d’idempotence
- Une valeur envoyée avec une requête pour que le destinataire reconnaisse une répétition et ne fasse le travail qu’une fois. Ici, l’id de la tâche.
- Un planificateur de tâches
- Clé d’idempotence
- Une valeur unique envoyée dans l’en-tête
Idempotency-Key. Le prestataire exécute la première requête portant cette clé et répond à chaque nouvel essai avec le résultat enregistré. - Encaisser des paiements
- Clé d’idempotence
- Une chaîne unique envoyée avec une requête, pour que le serveur reconnaisse une nouvelle tentative et renvoie le premier résultat au lieu de refaire le travail.
- Synthèse : le paiement d’une boutique en ligne
- Clé de leader
- Une clé dans un petit stockage de coordination, comme etcd, que seul le primaire en place a le droit de tenir. Elle a une durée de vie, et le primaire doit la renouveler avant qu’elle expire.
- La bascule d’une base de données
- Clé de partition
- La partie de la clé d’une ligne qui choisit le nœud qui la stocke. Les lignes de même clé de partition sont rangées ensemble sur disque.
- Une messagerie de groupe
- Code court
- Les quelques caractères après le domaine, comme
k3Xa9Qz. Le service associe chaque code à une URL longue. - Un raccourcisseur d’URL
- Collapse id
- L’en-tête APNs
apns-collapse-id. Les requêtes push qui portent la même valeur s’affichent comme une seule notification sur le téléphone. - Les notifications
- Completion suggester
- Une fonction d’Elasticsearch qui renvoie les entrées indexées commençant par un préfixe donné, depuis une structure gardée en mémoire.
- L’autocomplétion de recherche
- Conflit
- Deux révisions faites à partir de la même révision parente sur deux appareils, que la synchronisation range côte à côte sous un même id de document.
- Une application mobile offline-first
- Contre-pression
- Un signal qui remonte du côté des consommateurs vers le producteur pour lui dire « envoie moins », afin que l’arriéré arrête de grossir (en anglais : backpressure).
- Une file qui se remplit
- Copie de conflit
- La deuxième version d’un fichier, gardée sous un autre nom quand deux modifications ne peuvent pas être ordonnées.
- Synchroniser des fichiers
- Date d’expiration
- Le moment après lequel un paste ne doit plus être servi. L’auteur la choisit en créant le paste.
- Un service de paste
- Debounce
- Le client attend un court instant après la dernière touche, puis envoie une seule requête pour le texte tapé à ce moment.
- L’autocomplétion de recherche
- Délai de visibilité
- Dans Amazon SQS, le temps pendant lequel un message reçu reste caché aux autres workers. Si le worker ne le supprime pas dans ce délai, le message réapparaît.
- Des miniatures d’images
- Départage
- La règle qui ordonne deux joueurs à égalité de points, ici celui qui les a atteints en premier.
- Un classement de jeu
- Déploiement progressif
- Une règle qui active un flag pour un pourcentage d’utilisateurs, choisis par un hash de leur identifiant.
- Les feature flags
- Déploiement progressif
- Les serveurs reçoivent la nouvelle version quelques-uns à la fois, pendant que les autres continuent de servir. Un moment, l’ancien et le nouveau code tournent côte à côte sur la même base.
- Déployer sans interruption
- DNS rebinding
- Un domaine répond avec une IP publique au moment où tu le vérifies, puis avec une IP interne au moment où tu te connectes.
- Les aperçus de liens
- Envoi (delivery)
- Une ligne qui signifie « prévenir cet utilisateur de cet événement sur ce canal ». Sa clé est
(event_id, user_id, channel). - Les notifications
- Époque
- Le moment à partir duquel compte la partie horodatage d’un id. Snowflake comptait depuis novembre 2010 au lieu de 1970, pour que les 41 bits durent plus longtemps.
- Des identifiants uniques sur plusieurs serveurs
- Événement expired
- Une notification d’espace de clés Redis publiée quand Redis supprime une clé dont le TTL est écoulé.
- Le statut en ligne
- Expand and contract
- Un changement de schéma découpé en étapes. On ajoute d’abord la nouvelle forme à côté de l’ancienne, on y migre le code et les données, et seulement ensuite on retire l’ancienne.
- Déployer sans interruption
- Fail open
- Quand le limiteur lui-même est en panne, laisser passer les requêtes au lieu de toutes les refuser.
- Un limiteur de débit
- Fan-out
- Transformer un message envoyé en une livraison par membre du groupe.
- Une messagerie de groupe
- Fan-out
- Envoyer un message reçu à de nombreux destinataires. Ici, un but part vers 2 millions de connexions ouvertes.
- Scores sportifs en direct
- Fan-out à l’écriture
- Quand un compte publie, le système copie l’id de l’événement dans le fil de chaque abonné : une lecture ne lit alors qu’une liste.
- Un fil d’activité
- Fan-out à la lecture
- L’événement est stocké une fois, chez son auteur, et chaque lecteur va chercher les événements des comptes qu’il suit à l’ouverture du fil.
- Un fil d’activité
- Feature flag
- Un interrupteur nommé, comme
new-checkout, que le code lit pendant l’exécution et dont les règles vivent hors du code. - Les feature flags
- Fenêtre fixe
- Un compteur par clé pour chaque minute de l’horloge (12:00, 12:01...). Le compte repart de 0 quand la minute change.
- Un limiteur de débit
- Flush
- Le moment où un serveur d’appli écrit en base les compteurs qu’il garde en mémoire, puis repart de zéro.
- Compter les pages vues
- Grace
- Dans Varnish, un délai après le TTL pendant lequel le cache sert encore la page périmée, le temps d’en chercher une nouvelle en arrière-plan.
- Mettre en cache un site d’actualité
- Heartbeat
- Un petit message qu’une connexion envoie à intervalle fixe pour dire « cet utilisateur est toujours là ».
- Le statut en ligne
- Hot standby
- Un réplica PostgreSQL qui accepte des requêtes en lecture seule pendant qu’il rejoue les changements reçus du primaire.
- Servir deux régions
- Id de machine
- Un numéro donné à chaque serveur, unique parmi tous les serveurs. Il entre dans chaque id que ce serveur fabrique.
- Des identifiants uniques sur plusieurs serveurs
- Index géospatial
- Une structure qui répond à « quels points sont à moins de 3 km d’ici ? » sans lire tous les points. Redis en stocke un dans un sorted set, rempli avec
GEOADD. - Associer passagers et chauffeurs
- Infalsifiable a posteriori
- Une modification des enregistrements se détecte après coup. Ça ne veut pas dire qu’elle a été empêchée.
- Un journal d’audit
- Interblocage (deadlock)
- Deux transactions tiennent chacune un verrou que l’autre attend, et aucune ne peut se terminer.
- Réserver des places de concert
- Intervalle de rafraîchissement
- La fréquence à laquelle chaque serveur va chercher les règles auprès du service de flags.
- Les feature flags
- Last-Event-ID
- L’en-tête HTTP que l’
EventSourcedu navigateur envoie quand il se reconnecte, avec l’iddu dernier événement reçu. - Scores sportifs en direct
- Liste plafonnée
- Une liste coupée à une longueur fixe après chaque ajout, qui ne garde que les entrées les plus récentes.
- Un fil d’activité
- Livraison au moins une fois
- Chaque événement arrive chez le client une fois ou plus : l’expéditeur réessaie jusqu’à recevoir un
2xx, donc le client peut recevoir un doublon. - Envoyer des webhooks
- LSN
- Log sequence number : une position dans le journal d’écriture anticipée (WAL) de PostgreSQL, comme
16/B374D848. Un réplica qui a rejoué jusqu’à un LSN a tous les changements écrits avant. - Servir deux régions
- Mise à jour conditionnelle
- Un
UPDATEdont la clauseWHEREexige que la ligne soit encore libre. Le nombre de lignes renvoyé te dit si tu as eu la place. - Réserver des places de concert
- Module de changement de version
- Un bout de code qui transforme une réponse de la forme actuelle vers la forme d’une version plus ancienne.
- Changer une API publique
- Monolithe modulaire
- Une seule base de code et un seul déploiement, avec des frontières imposées entre modules : un module n’appelle un autre module que par son code public.
- Découper un monolithe
- Multipart upload
- Un envoi S3 en parties numérotées. S3 assemble les parties en un seul objet quand le client appelle
CompleteMultipartUpload. - Une chaîne d’envoi de vidéos
- Notification d’événement
- Un message que le service de stockage envoie quand un objet est créé dans un bucket. Ici, il part dans une file.
- Des miniatures d’images
- Offline-first
- L’application lit et écrit dans une base locale sur l’appareil, et se synchronise avec le serveur dès qu’il y a du réseau.
- Une application mobile offline-first
- Orchestrateur
- Un composant qui garde l’état de la saga et dit à chaque service quelle étape lancer ensuite.
- Une commande à travers plusieurs services
- Origine
- Les serveurs qui construisent les pages, ici les 6 serveurs du CMS derrière le cache.
- Mettre en cache un site d’actualité
- Outbox
- Une table écrite dans la même transaction que la commande, qui contient les messages (comme les e-mails) qu’un worker envoie ensuite.
- Synthèse : le paiement d’une boutique en ligne
- Packwerk
- Une gem Ruby de Shopify qui regroupe des fichiers en packages et signale une violation quand un package utilise une constante d’un package qu’il n’a pas déclaré comme dépendance.
- Découper un monolithe
- Passerelle (gateway)
- Un serveur qui garde ouvertes les connexions WebSocket des clients et y pousse les nouveaux messages.
- Une messagerie de groupe
- Poids
- Un nombre stocké avec chaque suggestion pour la classer, ici les ventes du produit sur 30 jours.
- L’autocomplétion de recherche
- Pool et silo
- Pool : plusieurs tenants partagent les mêmes tables. Silo : un tenant a sa propre base.
- Les données d’un SaaS multi-clients
- Position périmée
- La dernière position envoyée par un chauffeur avant que son appli arrête de répondre. Le chauffeur peut être loin, ou hors ligne.
- Associer passagers et chauffeurs
- Pré-agrégation
- Additionner les compteurs en mémoire sur le serveur d’appli et écrire les sommes, au lieu d’écrire chaque événement.
- Compter les pages vues
- Problème du « new enemy »
- Un utilisateur retiré d’une équipe garde l’accès, parce qu’un serveur a vérifié sur des données d’avant le retrait.
- Un système de permissions
- Pub/Sub
- Les canaux Redis : un éditeur envoie un message sur un nom de canal, et Redis le transmet à chaque client abonné à ce nom à cet instant.
- Une messagerie de groupe
- Publisher confirm
- Un message de RabbitMQ au producteur qui dit s’il a accepté un message (
basic.ack) ou s’il l’a refusé (basic.nack). - Une file qui se remplit
- Rang
- La position d’un joueur dans le classement, comptée à partir de 1 pour le meilleur score.
- Un classement de jeu
- Rebase
- Réécrire tes steps pas encore envoyés pour qu’ils s’appliquent après les steps que d’autres ont fait accepter avant toi.
- Éditer un document à plusieurs
- Référence entrante
- Un endroit du code d’un autre module qui utilise une classe de ce module. Chacune doit changer si ce module sort.
- Découper un monolithe
- Relation tuple
- Un fait stocké de la forme objet, relation, utilisateur, comme
project:p1#editor@team:t1#member(les membres de l’équipe t1 sont éditeurs de p1). - Un système de permissions
- Repli
- Ce que le code renvoie quand un appel échoue ou dépasse son timeout, par exemple une liste de meilleures ventes gardée en mémoire à la place des recommandations personnelles.
- Quand une dépendance tombe
- Réplication synchrone
- Le primaire annonce un commit réussi seulement quand un réplica confirme qu’il a reçu le changement. Une écriture que le client a vue réussir se trouve alors sur deux machines.
- La bascule d’une base de données
- Request coalescing
- Quand beaucoup de clients demandent la même page absente, le cache envoie une seule requête au backend et fait attendre les autres jusqu’à la réponse.
- Mettre en cache un site d’actualité
- Réservation
- Du stock retiré du nombre disponible au moment de la commande, avant le paiement, et remis si le paiement n’arrive jamais.
- Synthèse : le paiement d’une boutique en ligne
- Résultat inconnu
- L’état après une requête qui a expiré : le prestataire a peut-être débité la carte, ou n’a peut-être jamais vu la requête.
- Encaisser des paiements
- Retard de réplication
- Le temps entre un commit sur le primaire et le moment où ce changement est visible sur un réplica.
- Servir deux régions
- Révision
- Dans CouchDB et PouchDB, une version enregistrée d’un document, nommée comme
2-c1592ce7..., où le nombre compte les modifications depuis la première. - Une application mobile offline-first
- RPO
- Recovery point objective : la perte de données maximale, comptée en temps, que le métier accepte. Ici, 5 minutes.
- Un plan de sauvegarde
- RTO
- Recovery time objective : le temps maximal que le métier accepte entre la décision de restaurer et le retour de la base. Ici, 2 heures.
- Un plan de sauvegarde
- Saga
- Une suite de transactions locales, une par service. Chaque étape terminée a une étape de compensation qui l’annule si une étape suivante échoue.
- Une commande à travers plusieurs services
- Salle d’attente
- Une file devant le plan des places, qui laisse entrer les fans à un débit fixe et montre aux autres leur rang.
- Réserver des places de concert
- Sécurité au niveau ligne
- Une fonction de PostgreSQL (row-level security) : une politique sur une table décide quelles lignes chaque requête voit ou modifie, quel que soit son propre
WHERE. - Les données d’un SaaS multi-clients
- Séquence
- Un compteur interne à un serveur, qui numérote les ids fabriqués dans la même milliseconde.
- Des identifiants uniques sur plusieurs serveurs
- Server-sent events (SSE)
- Une réponse HTTP que le serveur garde ouverte pour y écrire des événements, en
text/event-stream. Le navigateur la lit avecEventSource. - Scores sportifs en direct
- Signature
- Un HMAC du corps de la requête, calculé avec un secret partagé avec le client, qui permet au client de vérifier qui l’envoie.
- Envoyer des webhooks
- SKIP LOCKED
- Une option PostgreSQL de
SELECT ... FOR UPDATE: les lignes verrouillées par une autre transaction sont sautées au lieu de faire attendre la requête. - Un planificateur de tâches
- SLI
- Indicateur de niveau de service : un ratio mesuré, le nombre d’événements réussis divisé par le nombre total d’événements.
- Mesurer un service
- SLO
- Objectif de niveau de service : la cible d’un SLI sur une période, par exemple 99,9 % de paiements réussis sur 30 jours.
- Mesurer un service
- Sorted set
- Un type Redis qui garde des membres uniques triés par un score numérique, avec chaque recherche en O(log N).
- Un classement de jeu
- Split brain
- Deux serveurs acceptent des écritures en tant que primaire en même temps. Leurs données divergent, et il faut jeter un des côtés ou fusionner à la main.
- La bascule d’une base de données
- SSRF
- Server-side request forgery : un utilisateur fait envoyer à ton serveur une requête vers l’adresse de son choix, par exemple une adresse interne.
- Les aperçus de liens
- Step
- Un petit changement du document, comme « insérer 2026-11-03 à la position 412 ». Un client envoie ses steps par lots.
- Éditer un document à plusieurs
- Stickiness
- Un même utilisateur reçoit la même réponse pour un flag à chaque requête et sur chaque serveur.
- Les feature flags
- Tempête de reconnexions
- Des milliers de clients qui se reconnectent dans la même seconde, parce que le serveur auquel ils étaient connectés s’est arrêté.
- Scores sportifs en direct
- Tenant
- Une entreprise cliente. Chaque ligne de données appartient à un seul tenant, indiqué par une colonne
tenant_id. - Les données d’un SaaS multi-clients
- Timeout
- Le temps maximal qu’un appelant attend une réponse avant d’abandonner et de passer à la suite. Ici, un réglage du client HTTP qui appelle le service de recommandations.
- Quand une dépendance tombe
- TOAST
- Le stockage de PostgreSQL pour les grandes valeurs : il les compresse ou les range dans une table annexe, sans rien changer à tes requêtes.
- Un service de paste
- Transaction de compensation
- L’étape qui défait une étape précédente : libérer le stock réservé, annuler l’autorisation de la carte.
- Une commande à travers plusieurs services
- Transcodage
- Décoder une vidéo puis l’encoder à nouveau dans une autre résolution ou un autre débit. Ici, ffmpeg tire trois versions plus légères de chaque original.
- Une chaîne d’envoi de vidéos
- TTL
- Time to live, durée de vie : le nombre de secondes au bout duquel Redis supprime une clé tout seul.
- Le statut en ligne
- TTL
- Time to live : le nombre de secondes pendant lequel un cache sert une page stockée avant de la considérer comme périmée.
- Mettre en cache un site d’actualité
- Upsert
- Une seule requête qui insère une ligne, ou la met à jour si une ligne avec la même clé existe déjà.
- Compter les pages vues
- Upsert
- Une écriture qui insère la ligne si sa clé primaire est nouvelle, et la met à jour si la clé existe déjà.
- Changer de base de données
- URL présignée
- Une URL que ton API signe pour qu’un téléphone envoie un objet directement dans le bucket, sans avoir ses propres identifiants de stockage.
- Des miniatures d’images
- URL présignée
- Une URL qui porte une signature autorisant une opération S3 pendant un temps limité. Un navigateur peut s’en servir sans avoir d’identifiants AWS.
- Une chaîne d’envoi de vidéos
- Vecteur de versions
- Un compteur par appareil sur chaque fichier. Un appareil ajoute 1 à son propre compteur à chaque modification du fichier.
- Synchroniser des fichiers
- Verrou à expiration
- Une clé qu’un seul processus peut créer, et qui s’efface d’elle-même après un délai fixé. En Redis :
SET key value NX EX 15. - Associer passagers et chauffeurs
- Version
- Un entier : le nombre de steps que le serveur a acceptés pour un document. Chaque step accepté ajoute 1.
- Éditer un document à plusieurs
- Version épinglée
- L’API note quelle version utilise chaque clé d’API, et répond à cette clé dans cette version jusqu’à ce que son propriétaire la change.
- Changer une API publique
- Version morte de ligne
- Dans PostgreSQL, l’ancienne copie d’une ligne supprimée ou modifiée. Elle garde sa place sur le disque jusqu’à ce que
VACUUMmarque cette place comme libre. - Un service de paste
- Webhook
- Un POST HTTP que ton service envoie à une URL enregistrée par le client, quand un événement se produit chez toi.
- Envoyer des webhooks
- Webhook
- Une requête HTTP que le prestataire envoie à ton serveur quand un événement se produit chez lui, par exemple un paiement réussi.
- Encaisser des paiements