Data Consistency in Microservice Using Sagas

preview_player
Показать описание
QCon San Francisco International Software Conference is back this November 18-22, 2024. Software leaders at early adopter companies will come together to share actionable insights to help you adopt the right technologies and practices.

Get exposed to new ideas and innovative approaches to software development and engineering, guaranteed to inspire and challenge you.

Don’t miss this opportunity to take your knowledge and skills to the next level and stay ahead in the fast-paced world of technology.

--------------------------------------------------------------------------------------------------

Chris Richardson discusses messaging, durability, and reliability in microservice architectures leveraging the Saga Pattern. He shows how sagas work and how they differ from traditional transactions, and describes how to use sagas to develop business logic in a microservices application. He also describes the design of a saga framework for Java and shows a sample application.

This presentation was recorded at QCon San Francisco 2017.
Рекомендации по теме
Комментарии
Автор

Astoundingly comprehensible talk on a very complex issue. Highly recommend.

toddymikey
Автор

I feel like "Saga Orchestration" is completely against the logic behind the microservices which is building independent components and teams. In this scenario a team has to maintain the orchestration point of two services which also has to be aware of the business logic of both services. I know sometimes orchestration is inevitable but I think in this situation it's better to use choreography.

brainoverflow
Автор

The problem occurs when there is two CreateOrder commands for the same customer at the same time. There could be two orders inserted with value of 100 (2 x 100 = 200) and a credit limit set to 100. If request 1 for CreateOrder is started for customer A and request 2 for CreateOrder is started for customer A. Then request 2 have to wait for request 1 to finish. CreateOrder first checks credit limit and then inserts order. And CreateOrder should finish when order is inserted. Problem solved.

ronnie
Автор

I'm way too dumb to get the point of Saga's in comparison to traditional BPM(N) streamlined orchestrated flows where the engine as its core is agnostic to business cases - so where is the benefit of having codish Saga's vs. modeling BPM-oriented flows for e.g. Camunda?!

jonescomas
Автор

What if the compensating transaction C1 fails? Won't the system be in limbo with only T1 executed.

therealsachin
Автор

Why not use Pub/Sub (Google) or EventHub (Azure) for the communication between services?

jonolavabeland
Автор

Speaker: "add and subtracts are commutative". Well... Add yes, substract not.😀
4+5=5+4
4-5≠5-4

PaulVanBladel