From 8fe75869c831680725dfe59453dd6c161dc0c3b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ola=20H=C3=A4llvall?= Date: Tue, 23 Apr 2024 14:54:13 +0200 Subject: [PATCH] Update README.md --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c7199f..d640c51 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ FlowDance aims to address several critical aspects in the context of microservic If a step cannot be fully rolled back (e.g., due to concurrent changes), compensating transactions undo the effects of previous steps. This pattern ensures that the system eventually converges to a consistent state, even after partial failures. -## Where you maybe are today +## Where you might be today? The team(s) has been working to split the monolith or at least some steps in that direction. To uphold strong Consistency the microservices use Distributed Transactions Calls Driven by MSDTC. ![Distributed monolith](Docs/distributed-monolith.png) @@ -40,6 +40,13 @@ In short - by replacing **System.Transactions.TransactionScope** with **FlowDanc ![Synchronous choreography-based call chains supported by FlowDance](Docs/synchronous-choreography-based-call-chains-with-flowdance.png) +In the center of **FlowDance**, there is something called a **Span**. A **Span** carries the information for how a transaction can be compensated. +A **Span** is initialized using the **SpanOpened** event and closed using the **SpanClosed** event. The image below illustrates a **Span** with a blue bracket. +The initial Span is called the Root Span, and it serves as the starting point for subsequent calls. Subsequent Spans share the same Correlation ID as the Root Span. + +![Synchronous choreography-based call chains supported by FlowDance](Docs/synchronous-choreography-based-call-chains-with-span.png) + + **Components of FlowDance**: - **Client Library**: The prima ballerina, guiding services in their graceful movements. - **Back-End Service**: A symphony of RabbitMQ and Microsoft Azure Durable Functions.