A Clojure framework for building stateless stream processing applications on Kafka with built-in retry mechanisms.
Ziggurat is a Clojure framework for building stateless stream processing applications on Kafka. It simplifies reading and processing messages from Kafka by abstracting common infrastructure concerns like message consumption, retry mechanisms via RabbitMQ, and HTTP server setup. Developers can focus on implementing business logic while Ziggurat handles the underlying stream processing complexities.
Clojure developers building real-time data processing applications, event-driven microservices, or ETL pipelines that consume from Kafka. It's particularly useful for teams needing a structured framework to reduce boilerplate in stream processing.
Ziggurat provides a production-ready, opinionated framework that abstracts away the intricacies of Kafka and RabbitMQ integration, offering built-in retry logic, multiple stream support, and graceful shutdown capabilities. Its middleware system and configuration-driven approach make it flexible yet easy to adopt for Clojure-based stream processing.
A stream processing framework to build stateless applications on Kafka
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Handles message reading from Kafka topics and partitions, reducing the need for low-level consumer code and simplifying stream setup.
Provides configurable retry counts for failed messages via RabbitMQ, automating error recovery without custom implementation.
Enables reading from multiple Kafka streams with separate handler functions, allowing complex data flows from different topics.
Includes an embedded HTTP server for adding REST endpoints, useful for health checks or admin interfaces without extra setup.
Mandates the use of both Kafka and RabbitMQ, limiting flexibility for projects using alternative messaging systems like Apache Pulsar or Redis.
Local development requires running Kafka, ZooKeeper, and RabbitMQ via Docker, which can be resource-heavy and slow to start.
Features like Sentry integration have been deprecated, indicating potential breaking changes or reduced long-term support in updates.