blak3mill3r/noah has 43 GitHub stars and 3 forks. GitHot measured 0 in 7 days and 0 in 15 days. Last checked 2026-11-11 02:28 UTC. Last push 2024-07-15.
Kafka Streams in Clojure
Crecimiento de estrellas medido
- in 24h
- Actualización retrasada
- in 7 days
- 0
- in 15 days
- 0
- in 1 month
- Recopilando historial
Cambios netos en períodos que se solapan, no totales diarios. Los datos no disponibles se dejan en blanco. Las estrellas indican interés, no calidad.
README.md
Originalnoah
(makes ark fast)
A simple Clojure interface to the Kafka Streams API
This is not on Clojars yet.
blak3mill3r/noah {:git/url "https://github.com/blak3mill3r/noah" :sha "look it up"}
Why?
Kafka and Clojure seem like natural companions, both emphasizing immutability and the primacy of data.
What's inside?
- A Clojure interface for building topologies and running an app using the high-level Streams API
- Clojure functions work on streams/tables
- maps to provide options
- surprisingly complete (it is generated reflectively)
- A few serialization choices including edn and nippy
- Test utilities exposing
TopologyTestDriver - A macro to ease the definition of a
Transformer- Write access to
StateStores - Punctuations
- Write access to
- Transducers
- Fault-tolerant stateful transducers
Status
Working (with 2.0 cluster and 2.2 client libraries). Probably more interesting than useful at this point. This is a young project which is far from battle-tested and there are some inadequacies.
Kicking the tires
Clone this repo, then try
clj aot.clj
clj -A:test:runner
Usage
At this time no example app code is provided.
:warning: If you want to make an app, you will want to AOT at least noah.serdes
Inadequacies
- There are some gaps in the wrapping, where you would still have to use ugly interop
- Good news: all signatures of all public methods are exposed
- Bad news: some types have no sugar; you should be able to get an idea from the docstrings
- No sugar for
Processor, onlyTransformer - Stateful transducers must be rewritten in order to instrument their state construction
- can't pass reader options for edn serialization, nor can you pass nippy options (well, you can, but it's DIY)
- probably a lot more, feel free to point them out
Reporting bugs
Please open an issue on Github if you spot something amiss.
Contributing
If you find it useful or interesting, I would love to hear about it. PRs are very welcome. It would be great to see a whole lot more transducers get added. I would also welcome feedback and discussion.
Acknowledgements
A tip of the hat is graciously offered to Bobby Calderwood, in whose experiments with KStream transducers I found much inspiration.
License
Copyright © 2018, 2019 Blake Miller
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.
Explorar proyectos relacionados
Asabeneh/30-Days-Of-Python
El reto de programación 30 Days of Python es una guía paso a paso para aprender el lenguaje de programación Python en 30 días. Este reto puede llevar más de 100 días. Sigue tu propio ritmo. Estos vídeos también pueden ayudarte: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,560 estrellasgrafana/grafana
Plataforma abierta y componible de observabilidad y visualización de datos. Visualiza métricas, registros y trazas de múltiples fuentes, como Prometheus, Loki, Elasticsearch, InfluxDB, Postgres y muchas más.
77,830 estrellasredis/redis
Para los desarrolladores que crean aplicaciones en tiempo real basadas en datos, Redis es la opción preferida, la más rápida y la de más funciones como caché, servidor de estructuras de datos y motor de consultas de documentos y vectores.
77,395 estrellasapache/superset
Apache Superset es una plataforma de visualización y exploración de datos.
75,473 estrellas