Developing a Kafka-powered, real-time web app has never been this easy.
You no longer need your own Kafka server to try out kaazing.io as we now offer one for you. Simply use your Kafka client library of choice to publish data to our Sandbox (located at kafka-sandbox.kaazing.io:9092). For each “topic” that you create within the Sandbox, kaazing.io will automatically generate a Server-sent Event (SSE) endpoint that will receive a stream of its underlying topic’s data. Drop this endpoint into a desktop or mobile application and you’re ready to deliver real-time features and functionalities!
Note: The Sandbox is for prototyping purposes only. It’s publicly accessible and carries no security or delivery guarantees. If you’re interested in going into production with kaazing.io, we’d love to talk.
Kafka – Almost Limitless
Today, the words “Apache Kafka” and “streaming” have become synonymous. As a distributed messaging system, Kafka is playing a critical role in establishing real-time data pipelines between backend systems, and microservices. Its horizontal scalability, fault-tolerance, low latency and high-throughput are key attributes that place it at the center of an event-driven backend. Yet, despite Kafka’s power inside the datacenter, it has not been optimized for consumers located across a public API boundary. In other words, Kafka does not directly enable “streaming” in a web context.
Server Sent Events – They Just Work
SSE is a protocol that allows web clients to receive a stream of updates from a server over HTTP. It’s an HTML5 standard that is supported by most browsers and mobile frameworks, and can be backported with polyfill for those that don’t. Unlike WebSockets, Server Sent Events are a one way communications channel – events flow from server to client only; however, what SSE lacks in terms of bidirectional communication patterns, it makes up for in simplicity, resilience and performance. Out of the box, SSE comes with features such as auto-reconnect, unique message/event ids, arbitrary message support and multiplexing.
Kafka Web Streams
In scenarios where data travels unidirectionally to the client, such as betting odds, news feeds, or other automated data push mechanisms (e.g. updating a client-side Web SQL Database or IndexedDB object store), SSE is extremely effective. Continuing an existing stream of data, such as one coming out of Kafka is also a use case that is well aligned with SSEs capabilities. In fact, there is even a logical mapping between Kafka and SSE messages. Nonetheless, the actual bridging of these two protocols in a seamless and low-latent manner is far from trivial. At its core, kaazing.io is a hyper performant protocol transformation engine that is exactly designed for such as task.
The Bottom Line
kaazing.io enables the development of robust real-time web applications based on open source and web standards. It exposes the performance and resilience benefits of backend systems such as Kafka to the frontend application layer and does not require any proprietary protocols or vendor libraries for data delivery. All in all, kaazing.io not only supports exciting functional developments but leads to a more decoupled and transparent architecture.