Orchestration Saga Pour Les Microservices Utilisant Le Pattern Outbox

Orchestration Saga Pour Les Microservices Utilisant Le Pattern Outbox

Le pattern Outbox, implémenté via la capture de données modifiées, est une approche éprouvée pour répondre au problème de l'échange de données entre les microservices. Le pattern Saga, comme illustré dans cet article, est utile pour les mises à jour de données qui couvrent plusieurs microservices.

Le pattern Outbox, implémenté via la capture de données modifiées, est une approche éprouvée pour répondre au problème de l'échange de données entre les microservices. Le pattern Saga, comme illustré dans cet article, est utile pour les mises à jour de données qui couvrent plusieurs microservices.

  • Les Sagas permettent la mise en œuvre de transactions métiers distribuées de longue durée, exécutant un ensemble d'opérations sur plusieurs microservices, appliquant une sémantique cohérente du tout ou rien.
  • Dans un souci de découplage, la communication entre les microservices doit de préférence se faire de manière asynchrone, par exemple en utilisant des journaux de validation distribués comme Apache Kafka.
  • Le pattern Outbox permet aux auteurs de services d'effectuer des écritures dans leur base de données locale et d'envoyer des messages via Apache Kafka, sans recourir à des «doubles écritures» dangereuses.
  • Debezium, une plate-forme de capture de données de changement open source distribuée, fournit une base solide et flexible pour orchestrer les flux Saga à l'aide du pattern Outbox.

Lors du passage aux microservices, l'une des premières choses à réaliser est que les services individuels n'existent pas de manière isolée. Bien que l'objectif soit de créer des services indépendants faiblement couplés avec le moins d'interaction possible, il y a de fortes chances qu'un service ait besoin d'un ensemble de données particulier appartenant à un autre service, ou que plusieurs services doivent agir de concert pour obtenir un résultat cohérent d'un opération dans le domaine de notre métier.

Le pattern Outbox, implémenté via la capture de données modifiées, est une approche éprouvée pour répondre au problème de l'échange de données entre microservices; évitant toute «double écriture» non sécurisée sur plusieurs ressources, par exemple, une base de données et un broker de messages, le pattern Outbox réalise finalement un échange de données cohérent, sans dépendre de la disponibilité synchrone de tous les participants, et ne nécessitant pas de protocoles complexes tels que XA (un standard utilisé pour le traitement des transactions distribuées défini par The Open Group) non plus.

Dans cet article, j'aimerais explorer comment faire passer le pattern Outbox à un niveau supérieur et l'utiliser pour mettre en œuvre des Sagas, des transactions métiers potentiellement de longue durée qui s'étendent sur plusieurs microservices. Un exemple courant est celui de la réservation d'un voyage comprenant plusieurs parties : soit toutes les étapes de vol et l'hébergement doivent être réservés ensemble, soit aucun d'entre eux. Sagas a divisé une de ces transactions métiers globales en une série de multiples transactions de base de données locales, qui sont exécutées par les services participants.

microservices

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Testing Microservices Applications

In this article, look at different ways to test microservices and how you can have a suitable testing strategy to begin with.

Microservices and Data Management - DZone Microservices

This article describes the nature of microservices applications, contrasts them with monolithic apps, and talk about microservices in data management.

Microservices and Data Management - DZone Microservices

This article describes the nature of microservices applications, contrasts them with monolithic apps, and talk about microservices in data management.

Microservices and Data Management - DZone Microservices

This article describes the nature of microservices applications, contrasts them with monolithic apps, and talk about microservices in data management.

The Service Mesh in the Microservices World - DZone Microservices

In this article, take a look at the service mesh in the microservices world. The software industry has come a long journey and throughout this journey, Software Architecture has evolved a lot. Starting with 1-tier (Single-node), 2-tier (Client/ Server), 3-tier, and Distributed are some of the Software Architectural patterns we saw in this journey.