~/talk

DIY Async Message Pump: Lessons from the trenches

Talkat Build Stuff 2019 · 2019-11-13..11-15· [distributed-systems]
slides:none on file

Built an async .NET message pump that hooks to MSMQ, RabbitMQ, Azure Service Bus, SQS, Kafka and SQL Server and surfaces concrete failures: unbounded concurrency kills DB pools (demo shows tens of thousands of tasks in 100ms), a 4,000ms handler inflates queue wait time, and a SemaphoreSlim plus slot throttling (think SemaphoreSlim toll-lane) reclaims stability. Covers DTC vs receive-only semantics, visibility timeout mechanics, send-via batching to cut cloud operation costs, and practical tradeoffs for exactly‑once, idempotency and shutdown.

AI-written summary · about

  1. 0:00Introduction and project background
  2. 4:39Architecture challenges and solution
  3. 13:52First message pump implementation
  4. 18:08Concurrency and unbounded risks
  5. 22:00Adding concurrency control
  6. 27:15Evolving the message pump
  7. 30:49Transaction management deep dive
  8. 40:44Cloud transaction semantics
  9. 43:15Cost and latency trade-offs
  10. 47:11Distributed system complexities
  11. 50:01Lessons and takeaways
~/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.