Async Ruby is the Future of AI Apps (And It’s Already Here)

Takeaways

  • LLM apps need long-lived connections, token streaming, and many concurrent mostly-idle sessions—thread-based job queues (Sidekiq, SolidQueue) cause slot starvation.
  • A single streaming job can hold a worker 30–60s while 99% idle; the 26th user waits on queue depth, not CPU.
  • Async Ruby (socketry/async) lets existing synchronous code run under the fiber scheduler without rewriting the stack—unlike Python’s asyncio migration pain.
  • Resource multiplication (DB pool, stack memory, OS threads) scales badly for 1000 concurrent streams on thread pools.
  • RubyLLM / Chat with Work are cited as real async-first LLM products built on this model.

Notes

Relevant if building or evaluating Ruby backends for agent tooling; less direct for Obsidian vault work unless extending server-side automations.

Open questions

  • Does async Ruby beat job-queue + SSE/WebSocket fan-out for typical personal-agent workloads at small scale?