From 27546b75c773971942f66d6bbf11203d7ae8aa23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ola=20H=C3=A4llvall?= Date: Wed, 17 Apr 2024 10:53:04 +0200 Subject: [PATCH] Update README.md --- README.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 9e5b3d2..31a35f9 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,21 @@ # FlowDance FlowDance goals is to support the following scenario: - Interservice communication between microservices (Database-per-Service Pattern). -- Replace distributed transactions calls driven by MSDTC with common synchronous RPC-calls sharing a Correlation ID. +- Replacing distributed transactions calls driven by MSDTC with common synchronous RPC-calls sharing a Correlation ID. - Moving away from strong consistency to eventual consistency using the Compensating Transaction pattern. -- Reducing long-running locks in the database due to distributed transactions supporting ACID. +- Reducing long-running locks in the database due to distributed transactions based on ACID. -## Breaking up the distributed monolith +## Breaking up the distributed monolith or at least one step in that direction ![Distributed monolith](Docs/distributed-monolith.png) -When moving away from an monolith to an microservices solution it's easy to ends up with something like picture below. Synchronous choreography-based call chains that´s cuts through the entire solution. -The solution upholds strong consistency by using distributed transaction based on MSDTC throughout the complete solution. -FlowDance takes a aim at reducing or eliminate the need of distributed transaction between microservices based on MSDTC. +When moving away from an monolith to an microservices solution it's easy to ends up with something like the picture above. +Synchronous choreography-based call chains that´s cuts through the entire solution. The solution upholds strong consistency by using distributed transaction based on MSDTC throughout the complete solution. +The picure below showes how easy a call chain gets created in the solution. One more call can't hurt that bad :) +![Synchronous choreography-based call chains](Docs/synchronous-choreography-based-call-chains.png) + + +FlowDance takes an aim at reducing or eliminate the need of distributed transaction between microservices based on MSDTC. There still can be some business case needing strong consistency. By extracting data from synchronous choreography based call chains into a Saga, FlowDance can support Compensating Transaction pattern.