Azkarra Streams: Java microframework boosts Kafka Streams
A new lightweight Java framework for Kafka Streams has been announced by StreamThoughts. It aims to improve the Kafka Streams ecosystem and includes a web-based, interactive user interface that helps with administrative tasks and offers a simple DAG representation. Take your first steps with Azkarra Streams and its interactive queries and start writing your app.
StreamThoughts, a tech consulting company focusing on real-time data streaming, introduced Azkarra Streams. This new open source Java framework helps programmers develop and deploy multiple Kafka Streams apps. With it, you can quickly create (and debug) stand-alone Kafka stream applications.
The project helps add to the Kafka Streams ecosystem and since it is a ‘micro-framework’, it is small and lightweight.
Let’s see an overview of this new micro-framework and how it helps.
Azkarra Streams features
Azkarra Streams is the first microframework for Kafka Stream, which is a client library for building apps and microservices. In Kafka Streams, data is stored in Kafka clusters. You can use Kafka Streams to deploy to containers and virtual machines, and write Java (and Scala) applications.
From the Azkarra Streams GitHub README, its features include:
- Create stand-alone Kafka Streams applications.
- Easy externalization of Topology and Kafka Streams configurations (using Typesafe Config).
- Embedded http server (Undertow).
- Embedded WebUI for topologies visualization.
- Provide production-ready features such as metrics, health checks, dead-letter-queues.
- Encryption and Authentication with SSL or Basic Auth.
Using it will enable you to focus more on writing what’s important: your Kafka Streams topologies code.
Demo of #AzkarraStreams WebUI
— Florian Hussonnois (@fhussonnois) November 27, 2019
By default, Azkarra Streams makes things even easier with an embedded web-based user interface. Inside the UI, you can stop and restart applications, view your active streams, and explore your metrics in one simple place, all at a glance.
Users can also view explore their data structures. View a simple DAG (directed acyclic graph) representation of your streams.
From the announcement post by StreamThought co-founder Florian Hussonnois:
Finally, Kafka Streams has a great mechanism to query the states materialized by streams applications. Usually, as developers we build HTTP endpoints to expose these states using the public Kafka Streams API.
Azkarra Streams provides a default endpoint for that purpose which is accessible directly through the Azkarra WebUI.
Users can query a specified key under the “interactive queries” tab in the user interface. Just set up your option and parameters, and then execute.
Prerequisites for it includes: an IDE or text editor, Java 11, Maven version 3+, and Docker.
View the getting started guide for an introduction to the tutorial and the developer guide for a deeper introduction about how it works. Be sure to also check out StreamThought’s other open source repositories for Apache Kafka.
Grab the examples on GitHub and give it a test run. Before running the example, you will need to start a Kafka Cluster. Start a single-node Kafka Cluster with the file
Help out and keep the issue tracker up to date for even better, more mature future releases with improvements and new features.