/ product overview

Powerful Features for Real-time Apps

Everything you need to build scalable, reliable real-time applications. From pub/sub messaging to presence tracking and beyond.

Real-time Pub/Sub Messaging

Topic-based publish-subscribe messaging built on WebSocket connections. Messages are delivered in milliseconds with automatic reconnection and message queuing.

  • Topic-based routing with wildcards
  • Automatic reconnection handling
  • Message queuing for offline clients
  • Binary and JSON message support

Presence Tracking

Know who's online in real-time. Track user presence across your entire application with automatic join/leave events.

  • Real-time online/offline status
  • Per-topic presence lists
  • Custom presence metadata
  • Presence change callbacks

Quality of Service (QoS)

Choose the right delivery guarantee for your use case. From fire-and-forget to exactly-once delivery.

  • QoS 0: At-most-once (fire and forget)
  • QoS 1: At-least-once (acknowledged)
  • QoS 2: Exactly-once (transactional)
  • Per-message QoS configuration

Access Scopes (Multi-Tenancy)

Partition communication by tenant using topic namespace scoping. Assign actors to scopes and all messages, webhooks, and state are automatically isolated.

  • Topic namespace partitioning per tenant
  • MQTT-level enforcement, no app code needed
  • Scope metadata flows through webhooks
  • Works across rooms, topics, and presence

Access Control (ACL)

Fine-grained permissions for every topic. Control who can publish, subscribe, and manage topics with role-based access.

  • Per-topic read/write permissions
  • Role-based access control
  • Actor-level authentication
  • API key scoping

Rooms & Namespaces

Organize your topics into logical rooms. Isolate conversations, games, or sessions with automatic namespace management.

  • Logical topic grouping
  • Room-level presence tracking
  • Automatic cleanup on disconnect
  • Cross-room messaging

Topic Filters

Narrow message delivery to specific entities within a topic. Subscribe to "bookings" with filters ["booking_1", "booking_2"] and only receive updates for those items. Swap filters dynamically without resubscribing.

  • Filter by entity ID within a topic
  • Dynamic filter management (set, add, remove)
  • Infrastructure-level routing — no payload inspection
  • Up to 100 filters per topic per connection

Webhooks

Configure webhooks per topic to integrate with external systems. Pre-populate state on subscribe and react to published messages with automatic tenant isolation via access scopes.

  • Per-topic webhook configuration
  • Automatic scope isolation in payloads
  • Dead Letter Queue for failed requests
  • Custom headers and authentication

Message Logging & Replay

Persist messages for debugging, auditing, and reliable delivery. Automatically replay missed messages when clients reconnect.

  • Configurable per-topic logging
  • Message history for debugging
  • Automatic replay on reconnect
  • Configurable retention periods

Lobbies

Observe presence across multiple rooms simultaneously. Perfect for dashboards, admin panels, and monitoring applications.

  • Multi-room presence observation
  • Dashboard and ops center views
  • Real-time status aggregation
  • Up to 10 lobbies per room

Task Handoff

Dispatch tasks to AI agents by capability tags. Built-in pooling, routing, and result collection for multi-agent workflows.

  • Tag-based capability routing
  • Worker pooling and load balancing
  • Result collection and callbacks
  • Timeout and retry policies

Blackboard State

Shared key-value state with versioning for multi-agent coordination. All agents see the same state with conflict-free updates.

  • Shared key-value store
  • Version tracking for conflict resolution
  • Real-time state change notifications
  • Scoped per-room isolation

Approval Gates

Human-in-the-loop gating for agent workflows. Pause agent execution until a human approves, rejects, or modifies the proposed action.

  • Pause/resume agent workflows
  • Approve, reject, or modify actions
  • Timeout with configurable defaults
  • Audit trail for compliance

Usage Analytics

Track connections, messages, and bandwidth in real-time. Monitor your application health with detailed usage metrics.

  • Real-time connection metrics
  • Daily message aggregates
  • Bandwidth tracking
  • Per-app usage breakdowns

MCP Server (Build with AI)

Connect Claude Desktop, Cursor, or any MCP-compatible AI assistant to manage your NoLag infrastructure. Create apps, actors, rooms, dispatch tasks, and query agent state - all from natural language.

  • 47+ tools for full infrastructure management
  • Scaffold agent workflows from a prompt
  • Dispatch tasks and query state from your IDE
  • Works with Claude Desktop, Cursor, and any MCP client

Built for Production

Production-grade infrastructure with the developer experience you deserve.

MessagePack Protocol

Efficient binary serialization for minimal bandwidth usage and fast parsing.

Multi-Region

Deploy closer to your users with edge locations worldwide.

Auto-Reconnection

Automatic reconnection with exponential backoff and message replay.

Analytics Dashboard

Real-time metrics, connection stats, and message throughput monitoring.

TypeScript First

Full TypeScript support with typed events and autocomplete.

Scalable Infrastructure

Built on Erlang/OTP for fault-tolerant, distributed messaging.

Technical Overview

The technical details that make NoLag fast, reliable, and developer-friendly.

Protocol Specifications

Transport
WebSocket (binary)
Serialization
MessagePack (not JSON)
Max Message Size
256KB
Heartbeat
30 seconds
Reconnect Attempts
Up to 10 with exponential backoff

Delivery Guarantees (QoS)

QoS 0At Most Once

Fire-and-forget (fastest)

QoS 1At Least Once(Default)

Guaranteed delivery, may duplicate (default)

QoS 2Exactly Once

Guaranteed single delivery (transactions)

Actor Types (Who Connects)

Device

Frontend clients

Example: Browser, mobile app

User

Authenticated users

Example: Logged-in account

Server

Backend services

Example: Your API server

Session

Temporary connections

Example: Anonymous guest

See it in action

Try our interactive playground or dive into the documentation.