SlideShare a Scribd company logo
1 of 132
Download to read offline
Distributed Sagas
A Protocol for Coordinating Microservices
Caitie McCaffrey
Distributed Systems Engineer
caitiem.com
@caitie
Service ServiceService
Monoliths
Microservices & NoSQL
2015
2015
“Application-level
Mechanisms for maintaining
database integrity”
Reserve a Hotel Front End
Reserve a Hotel Front End
Feral Concurrency
Control Mechanisms
Reserve a Hotel Front End
Feral Concurrency
Control Mechanisms
Reserve a Car Front End
Reserve a Flight Front End
Trips Front End
Trips Front End
Trips
Trips Front End
Trips
Feral Concurrency
Control Mechanisms
Trips Front End
Trips
Feral Concurrency
Control Mechanisms
Trips Front End
Trips
Feral Concurrency
Control Mechanisms
Front End
Trips
Architecture
Death Star Architectures
Can We Do Better
than Feral Concurrency Control?
2012
2012
“Spanner is Google’s scalable, multi-
version, globally distributed, and
synchronously-replicated database”
2015
2015
“The biggest barrier…is that
consistency mechanisms must
integrate across many
stateful services”
Two Phase Commit
2PC: Prepare Front End
Trips
Propose Book Hotel
Propose Book Car
Propose Book
Flight
2PC: Prepare Front End
Trips
Vote Book Hotel
Vote Book Car
Vote Book
Flight
2PC: Commit Front End
Trips
Commit/Abort Book Hotel
Commit/Abort Book Car
Commit/Abort
Book Flight
2PC: Commit Front End
Trips
Done
Done
Done
2PC: Commit Front End
Trips
Done
Done
Done
Doesn’t Scale
•O (N^2) Messages in the worst case
•Coordinator is a Single Point of Failure
•Reduced Throughput
Distributed Sagas
A Protocol for Coordinating Microservices
1987
1987
“Sagas are Long Lived Transactions
[in a single relational Database]”
1987
“A Saga is a Long Lived Transaction that
can be written as a sequence of transactions
that can be interleaved.
All transactions in the sequence complete
successfully or compensating transactions
are ran to amend a partial execution.”
Distributed Sagas
A Protocol for Coordinating Microservices
A Distributed Saga is a Collection of Requests
Book Hotel Book Car Book Flight Charge Money
A Distributed Saga is a Collection of Requests
Book Hotel Book Car Book Flight Charge Money
and Compensating Requests
Cancel Hotel Cancel Car Cancel Flight Refund Money
A Distributed Saga is a Collection of Requests
Book Hotel Book Car Book Flight Charge Money
and Compensating Requests
Cancel Hotel Cancel Car Cancel Flight Refund Money
that represent a single business level action
Distributed Saga
Requests
Requests
Can Abort
Book Car
Requests
Can Abort
Book Car
Requests
Must Be Idempotent
Book Car
Requests
Must Be Idempotent
Book Car
Requests
Must Be Idempotent
Book Car
Requests
Must Be Idempotent
Book Car
Requests
Must Be Idempotent
Book Car
Requests
Must Be Idempotent
Book Car
Timeout
Requests
Must Be Idempotent
Book Car
Requests
Must Be Idempotent
Book Car
Distributed Saga
Compensating Requests
Compensating Requests
Semantically undoes the effect of a request
Cancel Car
Compensating
Requests
Cannot Abort
Cancel Car
Compensating
Requests
Can Not Abort
Cancel Car
Compensating
Requests
Must Be Idempotent
Compensating
Requests
Must Be Commutative
with Requests
Book Car
Cancel Car
Cancel Car
Book Car
is the same as
Compensating
Requests
Book Car
Must Be Commutative
with Requests
Compensating
Requests
Book Car
Timeout
Must Be Commutative
with Requests
Compensating
Requests
Book Car
Book Car
Must Be Commutative
with Requests
Compensating
Requests
Book Car
Book Car
Cancel Car
Must Be Commutative
with Requests
Compensating
Requests
Book Car
Book Car
Cancel Car
Must Be Commutative
with Requests
Compensating
RequestsRequests
Idempotent Idempotent
Commutative
Can Not Abort
Can Abort
Distributed Saga Guarantee
Book Hotel Book Car Book Flight Charge Money
All requests were completed successfully
Distributed Saga Guarantee
Book Hotel Book Car Book Flight Charge Money
All requests were completed successfully
Or a subset of requests and the corresponding
compensating requests were executed
Book Hotel Book Car Cancel Hotel Cancel Car
Distributed Saga Guarantee
Book Hotel Book Car Book Flight Charge Money
All requests were completed successfully
Or a subset of requests and the corresponding
compensating requests were executed
Book Hotel Book Car Cancel Hotel Cancel Car
No Atomicity
No Isolation
Distributed Saga Guarantee
Book Hotel Book Car Book Flight Charge Money
All requests were completed successfully
Or a subset of requests and the corresponding
compensating requests were executed
Book Hotel Book Car Cancel Hotel Cancel Car
No Atomicity
No Isolation
Book Hotel
Book Car
Visible before
Saga Completes
Distributed Saga Guarantee
Book Hotel Book Car Book Flight Charge Money
All requests were completed successfully
Or a subset of requests and the corresponding
compensating requests were executed
Book Hotel Book Car Cancel Hotel Cancel Car
Distributed Saga
defining a
Directed Acyclic Graph
Distributed Saga Car FlightHotel
Payment
Start Saga
End Saga
Name: Hotel
Request: Book Hotel
Compensating Request: Cancel Hotel
Status: Not Completed
VertexDistributed Saga
Start & End Vertices
Distributed Saga
Start Saga
End Saga
Car FlightHotel
Payment
Start Saga
End Saga
Distributed Saga Log
fault-tolerant & highly available
Saga Execution Coordinator
SEC
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Distributed Saga
Executing a
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Book Trip Request
SEC
Car FlightHotel
Payment
Start Saga
End Saga
SEC
SagaLog
Start Saga
Book Trip Request
Car FlightHotel
Payment
Start Saga
End Saga
SEC
SagaLog
Done
Start Saga
Book Trip Request
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
SEC
Start Hotel
Start Saga
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
SEC
Done
Start Saga
Start Hotel
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
SEC
Book Hotel
Request
Start Saga
Start Hotel
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
SEC
Book Hotel
Response
Start Saga
Start Hotel
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
SEC
End Hotel
Start Saga
Start Hotel
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
SEC
Done
Start Saga
Start Hotel
End Hotel
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
SEC
Start Car
Start Saga
Start Hotel
End Hotel
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
SEC
Done
Book Car
Request
Start Saga
Start Hotel
End Hotel
Start Car
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Book Car
Response
End Car
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Done
End Car
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
End Car
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
DoneEnd Car
Start Flight
Book Flight
Request
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
End Car
Start Flight
Book Flight
Response
End Flight
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
End Car
Start Flight
Done
End Flight
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
End Car
Start Flight
Start Payment
End Flight
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
End Car
Start Flight
Done
End Flight
Start Payment
Payment
Request
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
End Car
Start Flight
End Payment
End Flight
Start Payment
Payment
Response
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
End Car
Start Flight
End Flight
Start Payment
End Payment
Done
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
End Car
Start Flight
End Flight
Start Payment
End Payment
End Saga
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
End Car
Start Flight
End Flight
Start Payment
End Payment
Done
End Saga
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
End Car
Start Flight
End Flight
Start Payment
End Payment
End Saga
Distributed Saga
Failure of a
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
SEC
Book Car
Request
Start Saga
Start Hotel
End Hotel
Start Car
Start Flight
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Book Car
Response
Abort CarStart Car
Start Flight
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
DoneStart Car
Start Flight
Abort Car
Car FlightHotel
Payment
Start Saga
End Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
DoneStart Car
Start Flight
Abort Car
Rollback Recovery
Car FlightHotel
Payment
End Comp Saga
Start Comp Saga
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Payment Log
Entries?Start Car
Start Flight
Abort Car
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
{ }Start Car
Start Flight
Abort Car
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Car Log
Entries?
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
{ Start, Abort }
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Hotel Log
Entries?
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
{ Start, End }
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
{ Start, End }
Cancel Hotel
Request
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Cancel Hotel
Response
Comp Hotel
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Done
Comp Hotel
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Comp Hotel
Flight Log
Entries?
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Comp Hotel
{ Start }
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Comp Hotel
{ Start }
Book Flight
Request
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Comp Hotel
End Flight
Book Flight
Response
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Comp Hotel
Done
Cancel Flight
Request
End Flight
Start Comp Saga
End Comp Saga
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Comp Hotel
Comp Flight
Cancel Flight
Response
Start Comp Saga
End Comp Saga
End Flight
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Comp Hotel
Done
Comp Flight
Start Comp Saga
End Comp Saga
End Flight
Comp Flight
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Comp Hotel
End Saga
Start Comp Saga
End Comp Saga
Comp Flight
End Flight
Comp Flight
Car FlightHotel
Payment
SagaLog
Start Saga
SEC
Start Hotel
End Hotel
Start Car
Start Flight
Abort Car
Comp Hotel
Done
End Saga
Start Comp Saga
End Comp Saga
Comp Flight
End Flight
Comp Flight
Distributed Saga Guarantee
Book Hotel Book Car Book Flight Charge Money
All requests were completed successfully
Or a subset of requests and the corresponding
compensating requests were executed
Book Hotel Book Car Cancel Hotel Cancel Car
Saga Execution Coordinator
Recovering from
Failure
Front End
SEC
Start Saga
End Saga
SagaLog
Front End
SEC
Start Saga
End Saga
SagaLog
Front End
SEC
Start Saga
End Saga
SagaLog
Front End
SEC
SagaLog
Start Saga
End Saga
with Distributed Sagas
Isolation of Complex Code
Fron
Tr
Complex Code
Lives Everywhere
Front
SEC
SagaLog
Complex Code
Lives Here
Complex Code
Lives Here
Fron
Tr
with Distributed Sagas
Modular Services
Front
SEC
SagaLog
Only Flight
Booking
Flight Booking &
Feral Concurrency
Control Mechanisms
Fron
Tr
with Distributed Sagas
Service Composition
Front
SEC
SagaLog
Just Add A
New Saga! New Service &
Feral Concurrency
Control Mechanisms
Distributed Sagas Makes
Building & Modifying
Microservices Easier
Thank you
@caitie

More Related Content

What's hot

Journey of saga pattern in microservice architecture
Journey of saga pattern in microservice architectureJourney of saga pattern in microservice architecture
Journey of saga pattern in microservice architectureanisurrahman403160
 
Mucon: Not Just Events: Developing Asynchronous Microservices
Mucon: Not Just Events: Developing Asynchronous MicroservicesMucon: Not Just Events: Developing Asynchronous Microservices
Mucon: Not Just Events: Developing Asynchronous MicroservicesChris Richardson
 
MariaDB High Availability
MariaDB High AvailabilityMariaDB High Availability
MariaDB High AvailabilityMariaDB plc
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQAraf Karsh Hamid
 
Real World Event Sourcing and CQRS
Real World Event Sourcing and CQRSReal World Event Sourcing and CQRS
Real World Event Sourcing and CQRSMatthew Hawkins
 
Serverless Architecture Patterns
Serverless Architecture PatternsServerless Architecture Patterns
Serverless Architecture PatternsAmazon Web Services
 
CQRS + Event Sourcing
CQRS + Event SourcingCQRS + Event Sourcing
CQRS + Event SourcingMike Bild
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAraf Karsh Hamid
 
High Concurrency Architecture at TIKI
High Concurrency Architecture at TIKIHigh Concurrency Architecture at TIKI
High Concurrency Architecture at TIKINghia Minh
 
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
Developing event-driven microservices with event sourcing and CQRS  (svcc, sv...Developing event-driven microservices with event sourcing and CQRS  (svcc, sv...
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...Chris Richardson
 
Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Solace
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven ArchitectureStefan Norberg
 
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Chris Richardson
 
Event Driven Microservices architecture
Event Driven Microservices architectureEvent Driven Microservices architecture
Event Driven Microservices architectureNikhilBarthwal4
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesAraf Karsh Hamid
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkbanq jdon
 
Axon Framework, Exploring CQRS and Event Sourcing Architecture
Axon Framework, Exploring CQRS and Event Sourcing ArchitectureAxon Framework, Exploring CQRS and Event Sourcing Architecture
Axon Framework, Exploring CQRS and Event Sourcing ArchitectureAshutosh Jadhav
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanAraf Karsh Hamid
 

What's hot (20)

Journey of saga pattern in microservice architecture
Journey of saga pattern in microservice architectureJourney of saga pattern in microservice architecture
Journey of saga pattern in microservice architecture
 
Mucon: Not Just Events: Developing Asynchronous Microservices
Mucon: Not Just Events: Developing Asynchronous MicroservicesMucon: Not Just Events: Developing Asynchronous Microservices
Mucon: Not Just Events: Developing Asynchronous Microservices
 
MariaDB High Availability
MariaDB High AvailabilityMariaDB High Availability
MariaDB High Availability
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
 
Real World Event Sourcing and CQRS
Real World Event Sourcing and CQRSReal World Event Sourcing and CQRS
Real World Event Sourcing and CQRS
 
Serverless Architecture Patterns
Serverless Architecture PatternsServerless Architecture Patterns
Serverless Architecture Patterns
 
CQRS + Event Sourcing
CQRS + Event SourcingCQRS + Event Sourcing
CQRS + Event Sourcing
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
 
High Concurrency Architecture at TIKI
High Concurrency Architecture at TIKIHigh Concurrency Architecture at TIKI
High Concurrency Architecture at TIKI
 
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
Developing event-driven microservices with event sourcing and CQRS  (svcc, sv...Developing event-driven microservices with event sourcing and CQRS  (svcc, sv...
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
 
Event driven architecture
Event driven architectureEvent driven architecture
Event driven architecture
 
Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture Introduction to Event-Driven Architecture
Introduction to Event-Driven Architecture
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...Building and deploying microservices with event sourcing, CQRS and Docker (Be...
Building and deploying microservices with event sourcing, CQRS and Docker (Be...
 
Event Driven Microservices architecture
Event Driven Microservices architectureEvent Driven Microservices architecture
Event Driven Microservices architecture
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFramework
 
Axon Framework, Exploring CQRS and Event Sourcing Architecture
Axon Framework, Exploring CQRS and Event Sourcing ArchitectureAxon Framework, Exploring CQRS and Event Sourcing Architecture
Axon Framework, Exploring CQRS and Event Sourcing Architecture
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, Kanban
 

Similar to Distributed sagas a protocol for coordinating microservices

DDD Europe 2019: Lost in transaction
DDD Europe 2019: Lost in transactionDDD Europe 2019: Lost in transaction
DDD Europe 2019: Lost in transactionBernd Ruecker
 
AWS Community Summit London 2019 - Lost in transaction
AWS Community Summit London 2019 - Lost in transactionAWS Community Summit London 2019 - Lost in transaction
AWS Community Summit London 2019 - Lost in transactionBernd Ruecker
 
Bernd Rücker - Lost in transaction? Strategies to manage consistency in serve...
Bernd Rücker - Lost in transaction? Strategies to manage consistency in serve...Bernd Rücker - Lost in transaction? Strategies to manage consistency in serve...
Bernd Rücker - Lost in transaction? Strategies to manage consistency in serve...AWSCOMSUM
 
Lost in transaction - Strategies to deal with (in)consistency in distributed ...
Lost in transaction - Strategies to deal with (in)consistency in distributed ...Lost in transaction - Strategies to deal with (in)consistency in distributed ...
Lost in transaction - Strategies to deal with (in)consistency in distributed ...Bernd Ruecker
 
Serverless London 2019 - Coordination of Serverless Functions
Serverless London 2019 - Coordination of Serverless FunctionsServerless London 2019 - Coordination of Serverless Functions
Serverless London 2019 - Coordination of Serverless FunctionsBernd Ruecker
 
Serverless Days 2019 - Lost in transaction
Serverless Days 2019 - Lost in transactionServerless Days 2019 - Lost in transaction
Serverless Days 2019 - Lost in transactionBernd Ruecker
 
Taxi Booking Ondemand Business 2023.pptx
Taxi Booking Ondemand Business 2023.pptxTaxi Booking Ondemand Business 2023.pptx
Taxi Booking Ondemand Business 2023.pptxCubetaxi Technolabs
 
Where can I find a taxi application developer_.pdf
Where can I find a taxi application developer_.pdfWhere can I find a taxi application developer_.pdf
Where can I find a taxi application developer_.pdfRiya Sai
 
Travel Portal Solution
Travel Portal SolutionTravel Portal Solution
Travel Portal SolutionSharmiMehta
 
Travel Portal Solution
Travel Portal SolutionTravel Portal Solution
Travel Portal SolutionSharmiMehta
 
TRAVEL SPEND OPTIMIZATION FOR POWER SECTOR CPSEs
TRAVEL SPEND OPTIMIZATION FOR POWER SECTOR CPSEsTRAVEL SPEND OPTIMIZATION FOR POWER SECTOR CPSEs
TRAVEL SPEND OPTIMIZATION FOR POWER SECTOR CPSEsShashank Shekhar
 
Providing quality for travel solution version1
Providing quality for travel solution   version1Providing quality for travel solution   version1
Providing quality for travel solution version1Sujith C Saji
 
Tab A Ride - Any Time Any Way
Tab A Ride - Any Time Any WayTab A Ride - Any Time Any Way
Tab A Ride - Any Time Any WayHarikrishna Patel
 
HOW THE CABIFY CLONE APP PLAYS A SIGNIFICANT ROLE IN YOUR TAXI-BOOKING SERV...
HOW THE CABIFY CLONE APP  PLAYS A SIGNIFICANT ROLE IN  YOUR TAXI-BOOKING SERV...HOW THE CABIFY CLONE APP  PLAYS A SIGNIFICANT ROLE IN  YOUR TAXI-BOOKING SERV...
HOW THE CABIFY CLONE APP PLAYS A SIGNIFICANT ROLE IN YOUR TAXI-BOOKING SERV...SpotnRides
 
Gateway2Travel Flights - Productguide EN
Gateway2Travel Flights - Productguide ENGateway2Travel Flights - Productguide EN
Gateway2Travel Flights - Productguide ENBart Vanmaele
 
On demand taxi service mobile app platform
On demand taxi service mobile  app platformOn demand taxi service mobile  app platform
On demand taxi service mobile app platformHarikrishna Patel
 
2019 - Lost in transaction
2019 - Lost in transaction2019 - Lost in transaction
2019 - Lost in transactionBernd Ruecker
 
Sabre Booking System
Sabre Booking SystemSabre Booking System
Sabre Booking SystemDhruvuVikram
 

Similar to Distributed sagas a protocol for coordinating microservices (20)

DDD Europe 2019: Lost in transaction
DDD Europe 2019: Lost in transactionDDD Europe 2019: Lost in transaction
DDD Europe 2019: Lost in transaction
 
AWS Community Summit London 2019 - Lost in transaction
AWS Community Summit London 2019 - Lost in transactionAWS Community Summit London 2019 - Lost in transaction
AWS Community Summit London 2019 - Lost in transaction
 
Bernd Rücker - Lost in transaction? Strategies to manage consistency in serve...
Bernd Rücker - Lost in transaction? Strategies to manage consistency in serve...Bernd Rücker - Lost in transaction? Strategies to manage consistency in serve...
Bernd Rücker - Lost in transaction? Strategies to manage consistency in serve...
 
Lost in transaction - Strategies to deal with (in)consistency in distributed ...
Lost in transaction - Strategies to deal with (in)consistency in distributed ...Lost in transaction - Strategies to deal with (in)consistency in distributed ...
Lost in transaction - Strategies to deal with (in)consistency in distributed ...
 
Serverless London 2019 - Coordination of Serverless Functions
Serverless London 2019 - Coordination of Serverless FunctionsServerless London 2019 - Coordination of Serverless Functions
Serverless London 2019 - Coordination of Serverless Functions
 
Serverless Days 2019 - Lost in transaction
Serverless Days 2019 - Lost in transactionServerless Days 2019 - Lost in transaction
Serverless Days 2019 - Lost in transaction
 
Taxi Booking Ondemand Business 2023.pptx
Taxi Booking Ondemand Business 2023.pptxTaxi Booking Ondemand Business 2023.pptx
Taxi Booking Ondemand Business 2023.pptx
 
Where can I find a taxi application developer_.pdf
Where can I find a taxi application developer_.pdfWhere can I find a taxi application developer_.pdf
Where can I find a taxi application developer_.pdf
 
Wbe Transfers
Wbe TransfersWbe Transfers
Wbe Transfers
 
Travel Portal Solution
Travel Portal SolutionTravel Portal Solution
Travel Portal Solution
 
Travel Portal Solution
Travel Portal SolutionTravel Portal Solution
Travel Portal Solution
 
TRAVEL SPEND OPTIMIZATION FOR POWER SECTOR CPSEs
TRAVEL SPEND OPTIMIZATION FOR POWER SECTOR CPSEsTRAVEL SPEND OPTIMIZATION FOR POWER SECTOR CPSEs
TRAVEL SPEND OPTIMIZATION FOR POWER SECTOR CPSEs
 
Providing quality for travel solution version1
Providing quality for travel solution   version1Providing quality for travel solution   version1
Providing quality for travel solution version1
 
Tab A Ride - Any Time Any Way
Tab A Ride - Any Time Any WayTab A Ride - Any Time Any Way
Tab A Ride - Any Time Any Way
 
HOW THE CABIFY CLONE APP PLAYS A SIGNIFICANT ROLE IN YOUR TAXI-BOOKING SERV...
HOW THE CABIFY CLONE APP  PLAYS A SIGNIFICANT ROLE IN  YOUR TAXI-BOOKING SERV...HOW THE CABIFY CLONE APP  PLAYS A SIGNIFICANT ROLE IN  YOUR TAXI-BOOKING SERV...
HOW THE CABIFY CLONE APP PLAYS A SIGNIFICANT ROLE IN YOUR TAXI-BOOKING SERV...
 
Gateway2Travel Flights - Productguide EN
Gateway2Travel Flights - Productguide ENGateway2Travel Flights - Productguide EN
Gateway2Travel Flights - Productguide EN
 
Business proposal
Business proposalBusiness proposal
Business proposal
 
On demand taxi service mobile app platform
On demand taxi service mobile  app platformOn demand taxi service mobile  app platform
On demand taxi service mobile app platform
 
2019 - Lost in transaction
2019 - Lost in transaction2019 - Lost in transaction
2019 - Lost in transaction
 
Sabre Booking System
Sabre Booking SystemSabre Booking System
Sabre Booking System
 

More from J On The Beach

Massively scalable ETL in real world applications: the hard way
Massively scalable ETL in real world applications: the hard wayMassively scalable ETL in real world applications: the hard way
Massively scalable ETL in real world applications: the hard wayJ On The Beach
 
Big Data On Data You Don’t Have
Big Data On Data You Don’t HaveBig Data On Data You Don’t Have
Big Data On Data You Don’t HaveJ On The Beach
 
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...J On The Beach
 
Pushing it to the edge in IoT
Pushing it to the edge in IoTPushing it to the edge in IoT
Pushing it to the edge in IoTJ On The Beach
 
Drinking from the firehose, with virtual streams and virtual actors
Drinking from the firehose, with virtual streams and virtual actorsDrinking from the firehose, with virtual streams and virtual actors
Drinking from the firehose, with virtual streams and virtual actorsJ On The Beach
 
How do we deploy? From Punched cards to Immutable server pattern
How do we deploy? From Punched cards to Immutable server patternHow do we deploy? From Punched cards to Immutable server pattern
How do we deploy? From Punched cards to Immutable server patternJ On The Beach
 
When Cloud Native meets the Financial Sector
When Cloud Native meets the Financial SectorWhen Cloud Native meets the Financial Sector
When Cloud Native meets the Financial SectorJ On The Beach
 
The big data Universe. Literally.
The big data Universe. Literally.The big data Universe. Literally.
The big data Universe. Literally.J On The Beach
 
Streaming to a New Jakarta EE
Streaming to a New Jakarta EEStreaming to a New Jakarta EE
Streaming to a New Jakarta EEJ On The Beach
 
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...J On The Beach
 
Pushing AI to the Client with WebAssembly and Blazor
Pushing AI to the Client with WebAssembly and BlazorPushing AI to the Client with WebAssembly and Blazor
Pushing AI to the Client with WebAssembly and BlazorJ On The Beach
 
Axon Server went RAFTing
Axon Server went RAFTingAxon Server went RAFTing
Axon Server went RAFTingJ On The Beach
 
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...J On The Beach
 
Madaari : Ordering For The Monkeys
Madaari : Ordering For The MonkeysMadaari : Ordering For The Monkeys
Madaari : Ordering For The MonkeysJ On The Beach
 
Servers are doomed to fail
Servers are doomed to failServers are doomed to fail
Servers are doomed to failJ On The Beach
 
Interaction Protocols: It's all about good manners
Interaction Protocols: It's all about good mannersInteraction Protocols: It's all about good manners
Interaction Protocols: It's all about good mannersJ On The Beach
 
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...J On The Beach
 
Leadership at every level
Leadership at every levelLeadership at every level
Leadership at every levelJ On The Beach
 
Machine Learning: The Bare Math Behind Libraries
Machine Learning: The Bare Math Behind LibrariesMachine Learning: The Bare Math Behind Libraries
Machine Learning: The Bare Math Behind LibrariesJ On The Beach
 

More from J On The Beach (20)

Massively scalable ETL in real world applications: the hard way
Massively scalable ETL in real world applications: the hard wayMassively scalable ETL in real world applications: the hard way
Massively scalable ETL in real world applications: the hard way
 
Big Data On Data You Don’t Have
Big Data On Data You Don’t HaveBig Data On Data You Don’t Have
Big Data On Data You Don’t Have
 
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
Acoustic Time Series in Industry 4.0: Improved Reliability and Cyber-Security...
 
Pushing it to the edge in IoT
Pushing it to the edge in IoTPushing it to the edge in IoT
Pushing it to the edge in IoT
 
Drinking from the firehose, with virtual streams and virtual actors
Drinking from the firehose, with virtual streams and virtual actorsDrinking from the firehose, with virtual streams and virtual actors
Drinking from the firehose, with virtual streams and virtual actors
 
How do we deploy? From Punched cards to Immutable server pattern
How do we deploy? From Punched cards to Immutable server patternHow do we deploy? From Punched cards to Immutable server pattern
How do we deploy? From Punched cards to Immutable server pattern
 
Java, Turbocharged
Java, TurbochargedJava, Turbocharged
Java, Turbocharged
 
When Cloud Native meets the Financial Sector
When Cloud Native meets the Financial SectorWhen Cloud Native meets the Financial Sector
When Cloud Native meets the Financial Sector
 
The big data Universe. Literally.
The big data Universe. Literally.The big data Universe. Literally.
The big data Universe. Literally.
 
Streaming to a New Jakarta EE
Streaming to a New Jakarta EEStreaming to a New Jakarta EE
Streaming to a New Jakarta EE
 
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
The TIPPSS Imperative for IoT - Ensuring Trust, Identity, Privacy, Protection...
 
Pushing AI to the Client with WebAssembly and Blazor
Pushing AI to the Client with WebAssembly and BlazorPushing AI to the Client with WebAssembly and Blazor
Pushing AI to the Client with WebAssembly and Blazor
 
Axon Server went RAFTing
Axon Server went RAFTingAxon Server went RAFTing
Axon Server went RAFTing
 
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
The Six Pitfalls of building a Microservices Architecture (and how to avoid t...
 
Madaari : Ordering For The Monkeys
Madaari : Ordering For The MonkeysMadaari : Ordering For The Monkeys
Madaari : Ordering For The Monkeys
 
Servers are doomed to fail
Servers are doomed to failServers are doomed to fail
Servers are doomed to fail
 
Interaction Protocols: It's all about good manners
Interaction Protocols: It's all about good mannersInteraction Protocols: It's all about good manners
Interaction Protocols: It's all about good manners
 
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers ...
 
Leadership at every level
Leadership at every levelLeadership at every level
Leadership at every level
 
Machine Learning: The Bare Math Behind Libraries
Machine Learning: The Bare Math Behind LibrariesMachine Learning: The Bare Math Behind Libraries
Machine Learning: The Bare Math Behind Libraries
 

Recently uploaded

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 

Recently uploaded (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 

Distributed sagas a protocol for coordinating microservices