4 options for dealing with failures between two systems
9
The Master Plan
10
For each external resource, examine possibilities and pick best option based on business requirements
11
First up: Stripe
12
Probably don't want to ignore a failed payment
13
Retry
14
Undo
15
Not unless we want duplicate emails
16
We can't un-send emails
17
Finally: RabbitMQ
18
Can't un-send a message
19
Compensating message is... weird
20
Coordinate
21
Taking a step back
22
Can we avoid exceptions by breaking the process coupling?
23
Way too much going on in a single button click
24
Modern ecommerce uses background processing to fulfill orders
25
Starting the workflow
26
Routing slip
27
Saga pattern
28
Process manager pattern
29
Orchestration or choreography?
Description:
Explore the complexities of distributed systems in this insightful conference talk that delves into the challenges of implementing a seemingly simple checkout page. Learn how six lines of code can hide potential failures and system-wide issues. Discover the importance of anticipating and planning for failures in distributed computing. Examine various strategies for handling failures between interconnected systems, including retrying, undoing actions, and coordinating processes. Gain valuable insights into modern e-commerce practices, such as background processing for order fulfillment. Investigate advanced concepts like routing slips, saga patterns, and process manager patterns. Compare orchestration and choreography approaches in distributed system design. Walk away with a deeper understanding of building resilient checkout processes that embrace the realities of distributed computing.