~/talk

Six Little Lines of Fail

Talkat NDC Porto 2019 · 2019-02-26..03-01· [microservices, devops-and-delivery]
slides:none on file

Six lines of code call a database, Stripe, SendGrid and RabbitMQ inside one DB transaction and that hides real failures: customers get charged but no order exists, emails never arrive, downstream systems never see messages. Practical fixes shown: Stripe idempotency or authorize then capture to avoid double charges, SendGrid treated as at least once or ignored, RabbitMQ solved with an outbox pattern, and complex coordination moved to a background process manager; the short-term choice is refund on failure.

AI-written summary · about

  1. 0:00Intro
  2. 1:246 little, innocuous lines of code
  3. 3:56Failure is ALWAYS an option
  4. 10:41is probably not good for business
  5. 12:12We can't put the world into a transaction
  6. 12:23Assume failures
  7. 12:464 options for dealing with failures between two systems
  8. 18:05The Master Plan
  9. 18:52First up: Stripe
  10. 19:26Probably don't want to ignore a failed payment
  11. 20:12Retry
  12. 24:01Undo
  13. 30:51Not unless we want duplicate emails
  14. 31:45We can't un-send emails
  15. 33:02Finally: RabbitMQ
  16. 35:23Can't un-send a message
  17. 36:11Coordinate
  18. 37:15Taking a step back
  19. 37:33Can we avoid exceptions by breaking the process coupling?
  20. 42:49Way too much going on in a single button click
  21. 45:11Starting the workflow
  22. 45:55Routing slip
  23. 46:50Saga pattern
  24. 47:51Process manager pattern
  25. 48:40Orchestration 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.