4 min readUpdated May 12, 2025

Introducing LiveObjects: Synchronize mutable, shared data across millions of clients in realtime

Introducing LiveObjects: Synchronize mutable, shared data across millions of clients in realtime
AblyAbly

We’re excited to announce Ably LiveObjects, launched with a radical vision: to enable any application to work with live, shared data that synchronizes instantly for users everywhere.

Shared access to live data is no longer a nice-to-have - it’s becoming a foundational building block of every realtime digital experience. Today’s users expect that when someone else makes a change, it appears on their screen instantly, no matter how many participants are involved or where they are across the globe.

Delivering this at scale, however, is hard. Ensuring low-latency updates, global availability, consistency under concurrency, and resilience to network failures means wrestling with some of the toughest challenges in distributed systems. Conflict resolution, synchronization, edge delivery, and durability all require deep engineering investment - often distracting teams from the core product experience.

LiveObjects removes that burden. It provides a global, durable, and conflict-free shared data layer built on Ably’s global network, so your application state stays perfectly synchronized in realtime without the need to build or manage complex infrastructure yourself.

What is LiveObjects?

LiveObjects provides a serverless, durable, and scalable way to create, update, and synchronize shared state across large numbers of connected clients. When a LiveObject is updated, changes are automatically propagated to all subscribed clients in realtime, ensuring everyone always sees the latest state.

LiveObjects provides a simple, purpose-built API that handles realtime synchronization, persistence, and convergence behind the scenes. The result is a single logical view of your data - distributed to the edge, updated in real time, and always in sync - no matter how many users are connected or where they are in the world.

You can use LiveObjects to build all sorts of powerful functionality in your applications that require realtime updates to shared data, such as voting and polling features, collaborative applications, live leaderboards, multiplayer game state or shared configuration, settings and controls.

How LiveObjects works

LiveObjects enables you to store data as “objects” on an Ably Pub/Sub channel. These objects are automatically synchronized in realtime across all connected clients, and any conflicts that arise from concurrent updates are seamlessly resolved in the background.

LiveObjects benefits from the same performance guarantees and scaling potential as channels.

LiveObjects currently supports two fundamental object types:

  • LiveCounter: a synchronized numerical counter that supports increment and decrement operations. It ensures that all updates are correctly applied and synchronized across users in realtime, preventing inconsistencies when multiple users modify the counter value simultaneously.
  • LiveMap: a key/value data structure that synchronizes its state across users in realtime. It enables you to store primitive values, such as numbers, strings, booleans or raw bytes, as well as other objects.

Additionally, LiveObjects enables you to build complex, hierarchical data structures through composability. Specifically, a LiveMap can store references to other LiveMap or LiveCounter object instances as values. This allows you to create nested hierarchies of data.

For example, to create a “reactions counter” feature you could use LiveCounter objects inside a LiveMap:

// get the root channel object
const root = await channel.objects.getRoot();
// create a new like counter
const likesCounter = await channel.objects.createCounter();
await root.set('likes', likesCounter);
// subscribe to updates
likesCounter.subscribe(() => {
console.log('likes counter updated:', likesCounter.value());
});// submit a likeawait likesCounter.increment(1);

What you need to know

LiveObjects is currently experimental, with features still in active development and subject to change. The stable release will be available in the coming weeks.

You can find the latest API details in the LiveObjects documentation.

LiveObjects is available as a plugin for the Ably Pub/Sub JavaScript SDK, with support for other platforms and languages including Swift and Kotlin coming soon. In the meantime, you can use LiveObjects from other platforms via the REST API and by using inband objects.

Support for additional object types such as LiveList and LiveText types, as well as other powerful features such as schemas, is coming soon. To express interest in these features, please get in touch.

We’d love your feedback as we continue to evolve the product - sign up for Ably and start exploring LiveObjects today.

Join the Ably newsletter today

1000s of industry pioneers trust Ably for monthly insights on the realtime data economy.
Enter your email