microsoft / service-fabric

Service Fabric is a distributed systems platform for packaging, deploying, and managing stateless and stateful distributed applications and containers at large scale.
https://docs.microsoft.com/en-us/azure/service-fabric/
MIT License
3.02k stars 399 forks source link

Please support Distributed Sagas #881

Open AceHack opened 6 years ago

AceHack commented 6 years ago

Please add Distributed Sagas as first class as outlined here

https://www.youtube.com/watch?v=0UTOLRTwOX0

This would likely involve adding either a new messaging/remoting version that enforces sagas or a built in saga coordinator service or both.

mkosieradzki commented 6 years ago

Out of curiosity: are there any significant differences between Distributed Sagas pattern and Durable Functions in Azure? (I am not suggesting that Service Fabric supports Durable Functions today, but wanted to understand the value proposition of Distributed Sagas).

AceHack commented 6 years ago

First off THANK YOU, durable functions are amazing and I didn't even know they existed. Adding just normal FaaS and Duable FaaS to service fabric should be a high priority :) Secondly Distributed Sagas are slightly different or you could think of them as specific orchestration patterns on top of an orchestrator fuction. It could simplify creating distributed sagas a lot but the big difference is the backwards flow "undo/compesation" as part of a workflow. Basically I want to orchestrate a process that updates state in multiple services but it either to all succeed or none of it to succeed and I don't wan't the heavy hand of a 2 phase commit so the alternative is Sagas. Having 2PC would not be bad either really. I just looking for some scalable reliable ways to do cross service or cross partition "transactions". I use the term transaction very loosely because I don't really mean actual 100% transactions. But to me this would be much lower priority than adding distrubed functions first. :)

AceHack commented 6 years ago

Also while durable functions are great it requres central orchestration. It would be nice to see a distributed version as well where each microservice involved was responsible for executing the workflow and ensuring it's relibility and durability.

mkosieradzki commented 6 years ago

I think that it would be awesome to be able to run Azure Functions Runtime on top of Service Fabric, especially with proper support Durable Functions.