Dans un système distribué, les composants s'exécutent dans des processus séparés ou sur des machines distinctes. Ces composants peuvent être des services applicatifs, des réplicas de bases de données ou des workers en arrière-plan. Parce que le système est divisé en de nombreuses parties, il est courant qu'un composant doive communiquer avec un autre pour accomplir une tâche, et qu'il doive attendre la réponse de ce dernier.
Vous pouvez considérer la coordination comme cette communication entre composants. Par exemple, un service peut attendre qu'un autre service approuve une requête. Une base de données peut attendre l'accusé de réception de ses réplicas. Un worker peut attendre un verrou. Chacune de ces attentes ajoute une dépendance, et c'est précisément là que les systèmes distribués rencontrent des difficultés.
Cet article examine pourquoi la coordination pose problème aux systèmes distribués. Il explique pourquoi la coordination devient difficile, comment elle augmente à mesure que le système évolue, et comment on peut la réduire. Les concepteurs qui minimisent les points où les composants doivent s'attendre mutuellement peuvent construire des systèmes plus résilients, plus évolutifs et plus faciles à exploiter.
L'idée centrale est que l'indépendance est généralement préférable à la coordination. Lorsqu'un composant peut progresser seul, sans attendre les autres, le système tend à mieux tolérer les pannes, les pics de latence et la charge. Les stratégies permettant de gérer la coordination lorsqu'elle ne peut être évitée font l'objet des sections suivantes.
Source: ByteByteGo · Résumé par HeadlinesBriefing