~/talk

Six Little Lines of Fail

Talkat NDC Sydney 2017 · 2017-08-14..08-18· [microservices, web-performance]
slides:none on file

Six innocuous lines post to Stripe, SendGrid and RabbitMQ inside one DB transaction and produce three real failures: missing emails, downstream systems not updated, and customers charged despite an error page. Mitigations explored include Stripe idempotency and authorization & capture, retry vs compensating refunds, storing outbound messages in an outbox pattern, and moving work to a background process manager. Implementation chosen first is try/catch plus refund, later refactor to async backend workflow; result: safer, slower, more reliable.

AI-written summary · about

  1. 0:00Intro
  2. 1:026 little, innocuous lines of code
  3. 3:08Failure is ALWAYS an option
  4. 11:38We can't put the world into a transaction
  5. 12:33Assume failures
  6. 12:43Plan for the worst
  7. 13:204 options for dealing with failures between two systems
  8. 18:57The Master Plan
  9. 19:44For each external resource, examine possibilities and pick best option based on business requirements
  10. 19:58First up: Stripe
  11. 21:16Retry
  12. 25:30Undo
  13. 28:50Option 4: Coordinate
  14. 32:27Next up: SendGrid
  15. 35:19Apologize?
  16. 35:47Finally: RabbitMQ
  17. 39:54Compensating message is... weird
  18. 41:25Taking a step back
  19. 41:56Can we avoid exceptions by breaking the process coupling?
  20. 50:01Still not there...
  21. 53:02Starting the workflow
  22. 55:03Routing slip
  23. 56:13Saga pattern
  24. 57:32Process manager pattern
  25. 58:18Orchestration or choreography?
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.