~/talk

Handling billions of events per day with Kotlin Coroutines

Talkat KotlinConf 2023 · 2023-04-12..04-14· [kotlin, web-performance]
links:none on file
links:none on file
slides:none on file

Migrates a 12‑year blocking Java app to an asynchronous model using Kotlin coroutines and Kotlin Flow, swaps Jetty for Vert.x, keeps most Java code and integrates Reactor, Guava listenable futures and the Cassandra async driver. Handles billions of events/day with millisecond latency, cuts threads from >1k to a few, nearly doubles web‑layer throughput and achieves a 25% cost reduction (millions/year). Hits production microbursts and GC/CPU contention, fixes by extracting heavy segmentation into a separate gRPC service and routing by request weight.

AI-written summary · about

  1. 0:00Start
  2. 3:00Request processing flow
  3. 3:57Application structure
  4. 5:42Business logic
  5. 12:20Data Access API | Hidden blocking operation
  6. 13:07Data Access API -Non-blocking transformation
  7. 23:26Production performance
  8. 27:31Flame Graph
  9. 33:48The refined architecture
  10. 35:43Lessons learned
~/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.