~/talk

Building an event-driven notification system in Go and RabbitMQ

Talkat GoLab 2019 · 2019-10-20..10-22· [microservices, distributed-systems]
links:none on file
slides:none on file

Cacoo moves from a Java monolith to ~7 microservices on Kubernetes using gRPC and Postgres, then builds a production event-driven backend in Go with RabbitMQ as broker, an event DB, and multiple Go workers (about four workers per type) handling in‑app notifications, emails and webhooks. Messages use protobuf, a deliberate events vs tasks schema (events carry IDs, tasks carry full payloads), a custom Go AMQP wrapper, separate publish/consume connections, buffered notifyClose and smart broker dumb consumer semantics; the system runs and scales in production.

AI-written summary · about

  1. 0:00Introduction
  2. 0:33Overview
  3. 1:30System Architecture
  4. 2:34Current Architecture
  5. 5:08Intermediate steps
  6. 6:03Events
  7. 11:01Events vs Tasks
  8. 13:34Resolving action
  9. 14:04Why RabbitMQ
  10. 18:24What is AMQP
  11. 22:20Go Library
  12. 24:53Library structure
  13. 26:39RPC implementation
  14. 29:49Development tips
  15. 30:02Two separate connections
  16. 31:47Buffer channels
  17. 33:31Dynamically declare objects
  18. 36:09PerfectSize
~/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.