Click Below to Get the Code

Browse, clone, and build from real-world templates powered by Harper.
Tutorial
GitHub Logo

Real-Time Pub/Sub Without the "Stack"

Explore a real-time pub/sub architecture where MQTT, WebSockets, Server-Sent Events, and REST work together with persistent data storage in one end-to-end system, enabling real-time interoperability, stateful messaging, and simplified service-to-device and browser communication.
Harper Learn
Tutorial
Harper Learn

Real-Time Pub/Sub Without the "Stack"

Ivan R. Judson, Ph.D.
Distinguished Solution Architect
at Harper
January 9, 2026
Ivan R. Judson, Ph.D.
Distinguished Solution Architect
at Harper
January 9, 2026
Ivan R. Judson, Ph.D.
Distinguished Solution Architect
at Harper
January 9, 2026
January 9, 2026
Explore a real-time pub/sub architecture where MQTT, WebSockets, Server-Sent Events, and REST work together with persistent data storage in one end-to-end system, enabling real-time interoperability, stateful messaging, and simplified service-to-device and browser communication.
Ivan R. Judson, Ph.D.
Distinguished Solution Architect

Real-time systems usually accumulate infrastructure. One service handles device messaging, another manages browser connections, a third exposes APIs, and additional layers keep state consistent between them. Each component solves a specific problem, but the system only works once everything is stitched together.

The demo in this video takes a different approach. It shows what real-time pub/sub looks like when storage, messaging, and protocol handling live in the same runtime.

State as the System Boundary

The LED sign in the demo is backed by a single table that represents its current state. That table isn’t just a persistence layer. It is also what directs all real-time behavior.

When a value in the table changes, Harper publishes an event. When a client subscribes, it listens for changes to that same table. Whether the change originates from a device, a browser, or an API call doesn’t matter—the runtime treats all updates the same.

This shifts the design focus from integrating services to modeling state transitions.

Protocols Without Translation Layers

Different clients interact with the table using different protocols. Devices publish updates over MQTT. Browser-based views subscribe via Server-Sent Events or WebSockets. UI controls update state through REST.

Because Harper natively supports these protocols, there is no translation layer converting messages between systems and no secondary source of truth to reconcile. Each protocol is simply another way to read from or write to the same data model.

Interoperability emerges naturally from this design rather than being configured explicitly.

Why This Simplifies Architecture

In most real-time architectures, messaging systems and databases evolve independently. Messages describe events, while databases describe state, and significant effort goes into keeping the two aligned.

In Harper, pub/sub is tied directly to data changes. The table becomes both the system of record and the event source. That removes entire classes of synchronization problems and eliminates the need for external brokers or coordination services.

The result is a system that behaves like a unified whole rather than a collection of integrated parts.

Making the Model Concrete

The MQTT Getting Started repository used in the demo exists to illustrate this pattern in practice. It shows how a single table can support publishing and subscribing across MQTT, WebSockets, Server-Sent Events, and REST without additional infrastructure.

You don’t need to study the implementation details to apply the idea. The important takeaway is architectural: real-time behavior is attached to data itself, not to a specific transport or service.

A Different Way to Think About Real-Time Systems

This approach changes how real-time applications are designed. Instead of planning message flows and protocol boundaries, you define shared state and let the runtime handle distribution.

That’s why the system in the video looks deceptively simple. The complexity hasn’t been hidden—it’s been removed by collapsing multiple responsibilities into a single platform.

For teams building real-time applications, that shift can make the difference between managing a stack and building on a system.

Real-time systems usually accumulate infrastructure. One service handles device messaging, another manages browser connections, a third exposes APIs, and additional layers keep state consistent between them. Each component solves a specific problem, but the system only works once everything is stitched together.

The demo in this video takes a different approach. It shows what real-time pub/sub looks like when storage, messaging, and protocol handling live in the same runtime.

State as the System Boundary

The LED sign in the demo is backed by a single table that represents its current state. That table isn’t just a persistence layer. It is also what directs all real-time behavior.

When a value in the table changes, Harper publishes an event. When a client subscribes, it listens for changes to that same table. Whether the change originates from a device, a browser, or an API call doesn’t matter—the runtime treats all updates the same.

This shifts the design focus from integrating services to modeling state transitions.

Protocols Without Translation Layers

Different clients interact with the table using different protocols. Devices publish updates over MQTT. Browser-based views subscribe via Server-Sent Events or WebSockets. UI controls update state through REST.

Because Harper natively supports these protocols, there is no translation layer converting messages between systems and no secondary source of truth to reconcile. Each protocol is simply another way to read from or write to the same data model.

Interoperability emerges naturally from this design rather than being configured explicitly.

Why This Simplifies Architecture

In most real-time architectures, messaging systems and databases evolve independently. Messages describe events, while databases describe state, and significant effort goes into keeping the two aligned.

In Harper, pub/sub is tied directly to data changes. The table becomes both the system of record and the event source. That removes entire classes of synchronization problems and eliminates the need for external brokers or coordination services.

The result is a system that behaves like a unified whole rather than a collection of integrated parts.

Making the Model Concrete

The MQTT Getting Started repository used in the demo exists to illustrate this pattern in practice. It shows how a single table can support publishing and subscribing across MQTT, WebSockets, Server-Sent Events, and REST without additional infrastructure.

You don’t need to study the implementation details to apply the idea. The important takeaway is architectural: real-time behavior is attached to data itself, not to a specific transport or service.

A Different Way to Think About Real-Time Systems

This approach changes how real-time applications are designed. Instead of planning message flows and protocol boundaries, you define shared state and let the runtime handle distribution.

That’s why the system in the video looks deceptively simple. The complexity hasn’t been hidden—it’s been removed by collapsing multiple responsibilities into a single platform.

For teams building real-time applications, that shift can make the difference between managing a stack and building on a system.

Explore a real-time pub/sub architecture where MQTT, WebSockets, Server-Sent Events, and REST work together with persistent data storage in one end-to-end system, enabling real-time interoperability, stateful messaging, and simplified service-to-device and browser communication.

Download

White arrow pointing right
Explore a real-time pub/sub architecture where MQTT, WebSockets, Server-Sent Events, and REST work together with persistent data storage in one end-to-end system, enabling real-time interoperability, stateful messaging, and simplified service-to-device and browser communication.

Download

White arrow pointing right
Explore a real-time pub/sub architecture where MQTT, WebSockets, Server-Sent Events, and REST work together with persistent data storage in one end-to-end system, enabling real-time interoperability, stateful messaging, and simplified service-to-device and browser communication.

Download

White arrow pointing right

Explore Recent Resources

Livestream
GitHub Logo

1.5 Hour Build - Vibe Coding a Full Personal Site: Design to Deployment in One Session

Watch Austin rebuild his personal website live using Claude AI and Harper, including a custom Markdown CMS, GraphQL schema design, React scaffolding, and full deployment. A real-time pair coding session from design to launch.
Livestream
Watch Austin rebuild his personal website live using Claude AI and Harper, including a custom Markdown CMS, GraphQL schema design, React scaffolding, and full deployment. A real-time pair coding session from design to launch.
Person with short hair wearing a light blue patterned shirt, smiling widely outdoors with blurred greenery and trees in the background.
Austin Akers
Head of Developer Relations
Livestream

1.5 Hour Build - Vibe Coding a Full Personal Site: Design to Deployment in One Session

Watch Austin rebuild his personal website live using Claude AI and Harper, including a custom Markdown CMS, GraphQL schema design, React scaffolding, and full deployment. A real-time pair coding session from design to launch.
Austin Akers
May 2026
Livestream

1.5 Hour Build - Vibe Coding a Full Personal Site: Design to Deployment in One Session

Watch Austin rebuild his personal website live using Claude AI and Harper, including a custom Markdown CMS, GraphQL schema design, React scaffolding, and full deployment. A real-time pair coding session from design to launch.
Austin Akers
Livestream

1.5 Hour Build - Vibe Coding a Full Personal Site: Design to Deployment in One Session

Watch Austin rebuild his personal website live using Claude AI and Harper, including a custom Markdown CMS, GraphQL schema design, React scaffolding, and full deployment. A real-time pair coding session from design to launch.
Austin Akers
Blog
GitHub Logo

The Old Product Loop Is the New Bottleneck

AI has made it dramatically cheaper to get software to a working version, but most companies still plan like building is the expensive part. The new bottleneck is the product loop: forming sharp hypotheses, living inside the user experience, fixing friction as it appears, and feeding evidence back into the roadmap faster than ticket-based planning allows.
Blog
AI has made it dramatically cheaper to get software to a working version, but most companies still plan like building is the expensive part. The new bottleneck is the product loop: forming sharp hypotheses, living inside the user experience, fixing friction as it appears, and feeding evidence back into the roadmap faster than ticket-based planning allows.
Person with short dark hair and moustache, wearing a colorful plaid shirt, smiling outdoors in a forested mountain landscape.
Aleks Haugom
Senior Manager of GTM
Blog

The Old Product Loop Is the New Bottleneck

AI has made it dramatically cheaper to get software to a working version, but most companies still plan like building is the expensive part. The new bottleneck is the product loop: forming sharp hypotheses, living inside the user experience, fixing friction as it appears, and feeding evidence back into the roadmap faster than ticket-based planning allows.
Aleks Haugom
May 2026
Blog

The Old Product Loop Is the New Bottleneck

AI has made it dramatically cheaper to get software to a working version, but most companies still plan like building is the expensive part. The new bottleneck is the product loop: forming sharp hypotheses, living inside the user experience, fixing friction as it appears, and feeding evidence back into the roadmap faster than ticket-based planning allows.
Aleks Haugom
Blog

The Old Product Loop Is the New Bottleneck

AI has made it dramatically cheaper to get software to a working version, but most companies still plan like building is the expensive part. The new bottleneck is the product loop: forming sharp hypotheses, living inside the user experience, fixing friction as it appears, and feeding evidence back into the roadmap faster than ticket-based planning allows.
Aleks Haugom
Livestream
GitHub Logo

2 Hour Build - Live Stream for Non-Developers

A non-developer's live stream walkthrough of building Flow State, a Colorado river-flow app for rafters, in two hours using ChatGPT dictation, Claude Code, Claude Design, and Harper. Scaffold with npm create harper@latest and deploy to Harper Fabric. No coding background required.
Livestream
A non-developer's live stream walkthrough of building Flow State, a Colorado river-flow app for rafters, in two hours using ChatGPT dictation, Claude Code, Claude Design, and Harper. Scaffold with npm create harper@latest and deploy to Harper Fabric. No coding background required.
Person with short dark hair and moustache, wearing a colorful plaid shirt, smiling outdoors in a forested mountain landscape.
Aleks Haugom
Senior Manager of GTM
Livestream

2 Hour Build - Live Stream for Non-Developers

A non-developer's live stream walkthrough of building Flow State, a Colorado river-flow app for rafters, in two hours using ChatGPT dictation, Claude Code, Claude Design, and Harper. Scaffold with npm create harper@latest and deploy to Harper Fabric. No coding background required.
Aleks Haugom
May 2026
Livestream

2 Hour Build - Live Stream for Non-Developers

A non-developer's live stream walkthrough of building Flow State, a Colorado river-flow app for rafters, in two hours using ChatGPT dictation, Claude Code, Claude Design, and Harper. Scaffold with npm create harper@latest and deploy to Harper Fabric. No coding background required.
Aleks Haugom
Livestream

2 Hour Build - Live Stream for Non-Developers

A non-developer's live stream walkthrough of building Flow State, a Colorado river-flow app for rafters, in two hours using ChatGPT dictation, Claude Code, Claude Design, and Harper. Scaffold with npm create harper@latest and deploy to Harper Fabric. No coding background required.
Aleks Haugom
Tutorial
GitHub Logo

Production Quality at Vibe Code Velocity: Dispatched Agent Teams with Harper

Harper enables production-grade agentic engineering by collapsing database, cache, runtime, and messaging into one process, reducing agent complexity and review burden. A multi-model dispatch workflow lets specialized agents plan, code, QA, and review in parallel while humans retain control over critical decisions.
Tutorial
Harper enables production-grade agentic engineering by collapsing database, cache, runtime, and messaging into one process, reducing agent complexity and review burden. A multi-model dispatch workflow lets specialized agents plan, code, QA, and review in parallel while humans retain control over critical decisions.
Person with very short hair and a goatee wearing a plaid button‑up shirt over a white undershirt, smiling outdoors with leafy greenery behind.
Jeff Darnton
SVP, Professional Services & Customer Success
Tutorial

Production Quality at Vibe Code Velocity: Dispatched Agent Teams with Harper

Harper enables production-grade agentic engineering by collapsing database, cache, runtime, and messaging into one process, reducing agent complexity and review burden. A multi-model dispatch workflow lets specialized agents plan, code, QA, and review in parallel while humans retain control over critical decisions.
Jeff Darnton
May 2026
Tutorial

Production Quality at Vibe Code Velocity: Dispatched Agent Teams with Harper

Harper enables production-grade agentic engineering by collapsing database, cache, runtime, and messaging into one process, reducing agent complexity and review burden. A multi-model dispatch workflow lets specialized agents plan, code, QA, and review in parallel while humans retain control over critical decisions.
Jeff Darnton
Tutorial

Production Quality at Vibe Code Velocity: Dispatched Agent Teams with Harper

Harper enables production-grade agentic engineering by collapsing database, cache, runtime, and messaging into one process, reducing agent complexity and review burden. A multi-model dispatch workflow lets specialized agents plan, code, QA, and review in parallel while humans retain control over critical decisions.
Jeff Darnton
Tutorial
GitHub Logo

Change Data Capture Into a Runtime: One Pipeline for Pages, Search, and AI Agents

Learn how Harper turns CDC streams into real-time workflows that refresh cached pages, update search indexes, and keep AI agent context current. See why landing changes in an application runtime beats warehouses, queues, and traditional CDNs.
Tutorial
Learn how Harper turns CDC streams into real-time workflows that refresh cached pages, update search indexes, and keep AI agent context current. See why landing changes in an application runtime beats warehouses, queues, and traditional CDNs.
Person with very short hair and a goatee wearing a plaid button‑up shirt over a white undershirt, smiling outdoors with leafy greenery behind.
Jeff Darnton
SVP, Professional Services & Customer Success
Tutorial

Change Data Capture Into a Runtime: One Pipeline for Pages, Search, and AI Agents

Learn how Harper turns CDC streams into real-time workflows that refresh cached pages, update search indexes, and keep AI agent context current. See why landing changes in an application runtime beats warehouses, queues, and traditional CDNs.
Jeff Darnton
May 2026
Tutorial

Change Data Capture Into a Runtime: One Pipeline for Pages, Search, and AI Agents

Learn how Harper turns CDC streams into real-time workflows that refresh cached pages, update search indexes, and keep AI agent context current. See why landing changes in an application runtime beats warehouses, queues, and traditional CDNs.
Jeff Darnton
Tutorial

Change Data Capture Into a Runtime: One Pipeline for Pages, Search, and AI Agents

Learn how Harper turns CDC streams into real-time workflows that refresh cached pages, update search indexes, and keep AI agent context current. See why landing changes in an application runtime beats warehouses, queues, and traditional CDNs.
Jeff Darnton