Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
olahallvall authored Apr 17, 2024
1 parent c34620f commit 27546b7
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -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.

Expand Down

0 comments on commit 27546b7

Please sign in to comment.