Playbooks
What do I do, and what does each option cost?
- 1
Choose a transport
Records must move from a producer to consumers: a synchronous call, a queue, publish/subscribe or a log? Three questions pick the transport; five settings then make it safe.
Choose - 2
Handle overload
Work arrives faster than it can be served: break the circuit to a failing dependency, buffer a burst, slow the source, refuse at the door, or shed? Four questions pick the response; two checks keep it from spreading.
Choose - 3
Choose a partitioning
Records are split across N partitions or shards: round-robin, hash or range, by which key, with how many partitions, and what happens to skew, order and failures?
Choose - 4
Make effects repeatable
Messages can arrive more than once and consumers can crash mid-way: list every effect, make each one safe to repeat, commit progress after the work, and prove it by crashing the consumer.
Design