Systems | Development | Analytics | API | Testing

What 40+ engineering teams learned about shipping AI to users at scale

There’s no shortage of noise in AI right now. New frameworks, protocols, demos, and acronyms appear almost weekly. But when you speak directly to the teams actually shipping AI to users at scale, a different picture emerges. This is what we've learned over the last few months from speaking to CTOs, AI engineering leads, and product leaders from unicorns, public companies, and fast-growing platforms across industries where humans interact directly with AI.

AI Transport in action: resumable streaming, multi-device sync, and more

How do you deliver token streams, sync conversation state across devices, and let users interrupt an agent mid-response -- without rebuilding your stack every time you switch frameworks? Mike Christensen demonstrates Ably AI Transport in action, walking through the key primitives every production AI application needs and showcasing a multi-agent holiday planning app built on those primitives. Topics covered.

LiveObjects now available: shared state without the infrastructure overhead

Shared state is a hard problem. Not hard in the abstract, computer-science sense (the concepts are well understood). Hard in the someone has to actually build this sense, where every team that wants a live leaderboard, a shared config panel, or a poll that updates in real time ends up reinventing the same wheels: conflict resolution, reconnection handling, state recovery. Most teams do not want to spend their time building and maintaining that layer. They want to ship the feature that depends on it.

How leading AI companies really build: lessons from 40+ engineering leaders

What does it actually take to ship Gen 2 AI experiences to real users at scale? Matthew O'Riordan, CEO of Ably, shares insights from conversations with 40+ engineering leaders — including at unicorns and public corporations — on where AI delivery breaks and what production teams are doing about it. Topics covered: Timestamps.

The missing transport layer in user-facing AI applications

Most AI applications start the same way: wire up an LLM, stream tokens to the browser, ship. That works for simple request-response. It breaks when sessions outlast a connection, when users switch devices, or when an agent needs to hand off to a human. The cracks appear in the delivery layer, not the model. Every serious production team discovers this independently and builds their own workaround. Those workarounds don't hold once users start hitting them in production.

Resume tokens and last-event IDs for LLM streaming: How they work & what they cost to build

When an AI response reaches token 150 and the connection drops, most implementations have one answer: start over. The user re-prompts, you pay for the same tokens twice, and the experience breaks. Resume tokens and last-event IDs are the mechanism that prevents this. They make streams addressable – every message gets an identifier, clients track their position, and reconnections pick up from exactly where they left off. The concept is straightforward.

Why AI agents need a transport layer: Solving the realtime sync problem

Building AI agents that work reliably in production requires solving problems that have nothing to do with AI. While teams focus on prompt engineering, model selection, and agent orchestration, a different class of challenges emerges at deployment. These have little to do with LLMs and everything to do with keeping agents and clients synchronized in realtime. Over the past few months, we've spoken with engineers at over 40 companies building AI assistants, copilots, and agentic workflows.

WebSockets vs HTTP for AI applications: which to choose in 2026

When building AI experiences, choosing between WebSockets and HTTP isn't always straightforward. Which protocol is better for streaming LLM responses? How do you maintain continuity when users switch devices mid-conversation? Should you use both? The answer depends on the type of AI experience you're building. Modern AI applications often require both protocols, each serving different purposes. The key question is: how do you decide which communication pattern fits each scenario in your AI stack?

Edit and delete messages without rewriting your history layer

Editing or removing a message after it’s been published sounds simple. In realtime systems, it usually isn’t. Once a message has been delivered to multiple clients, cached locally, and written into history, changing it safely becomes a coordination problem. Clients need to agree on what’s current. History needs to stay consistent. Reconnects and refreshes can’t bring back stale content. That’s why many systems treat messages as immutable by default.