4 options for dealing with failures between two systems
8
The Master Plan
9
For each external resource, examine possibilities and pick best option based on business requirements
10
First up: Stripe
11
Retry
12
Undo
13
Option 4: Coordinate
14
Next up: SendGrid
15
Apologize?
16
Finally: RabbitMQ
17
Compensating message is... weird
18
Taking a step back
19
Can we avoid exceptions by breaking the process coupling?
20
Still not there...
21
Starting the workflow
22
Routing slip
23
Saga pattern
24
Process manager pattern
25
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 strategies for building resilient distributed systems, including examining inevitable failures, addressing coupling in code, and refactoring towards a truly robust checkout process. Gain valuable insights into handling failures between systems, dealing with external resources like payment gateways and email services, and implementing patterns such as routing slip, saga, and process manager. Understand the importance of embracing the fallacies of distributed computing and planning for worst-case scenarios to create more reliable and fault-tolerant applications.