~/talk

Keep your sanity with compositional tracing

Talkat Typelevel Summit 2020 · on Thursday, 2020-03-12· [observability, distributed-systems]
links:none on file
slides:none on file

Shows how to get MDC and distributed tracing to survive Scala async by actually wrapping the ExecutionContext and lifting thread‑local get/set into IO with a bracket-based set, plus an important shift before async trick so context isn’t lost. Compares manual parameter passing vs thread‑local magic (Kamon/Zipkin/Jaeger/Honeycomb), demonstrates converting spans to headers and logging trace/span IDs, recommends ReaderT/Context approach with cats‑effect integrations, and admits the approach mostly works but is fragile and requires careful instrumentation.

AI-written summary · about

  1. 0:00Start
  2. 5:34Async Programming on the Jvm
  3. 8:54Run with Context
  4. 13:02Lazy Evaluation
  5. 15:05Set Context
  6. 20:27Shift before the Async
  7. 26:32Distributed Tracing
  8. 45:21We Also Need some Sort of Escape Hatches so that the Code That Was Not Built with that in Mind for Example some General Libraries or Akka or Whatever You Still Want To See the Transaction or the Trace and Span Ids in the Logs so You Need a Way To Get from the Context That's Functional to that Do Pure World and Set for Example that Thread-Local the Killing Block of Code That's Not Really Hard To Implement and I Would Argue that It's Much Easier To Do than All the Magic That We Did To Get a Old Work with that but I'M Dc-Dc Was I Wouldn't Say and Ec Is Better for Context Propagation but It's Still Useful
~/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.