Overview
Syllabus
Intro
6 little, innocuous lines of code
Failure is ALWAYS an option
We can't put the world into a transaction
Assume failures
Plan for the worst
4 options for dealing with failures between two systems
The Master Plan
For each external resource, examine possibilities and pick best option based on business requirements
First up: Stripe
Retry
Undo
Option 4: Coordinate
Next up: SendGrid
Apologize?
Finally: RabbitMQ
Compensating message is... weird
Taking a step back
Can we avoid exceptions by breaking the process coupling?
Still not there...
Starting the workflow
Routing slip
Saga pattern
Process manager pattern
Orchestration or choreography?
Taught by
NDC Conferences