What is Azkarra Streams ?
The Azkarra Streams project is dedicated to making development of streaming microservices based on Apache Kafka Streams simple and fast. Our goal is not to recreate yet another full-stack framework (e.g : Quarkus or Micronaut), but to provide a straightforward way to build and deploy Kafka Streams applications by leveraging the best-of-breed ideas and proven practices from the open-source community (Azkarra is Basque word for "Fast").
Streaming 'Word Count'
@AzkarraStreamsApplication
public class StreamsApplication {
public static void main(final String[] args) {
AzkarraApplication.run(StreamsApplication.class, args);
}
@Component
@TopologyInfo( description = "A basic WordCount topology example", aliases = {"Word"} )
public class BasicWordCountTopology implements TopologyProvider {
@Override
public String version() {
return Version.getVersion();
}
@Override
public Topology topology() {
final StreamsBuilder builder = new StreamsBuilder();
final KStream<String, String> words = builder.stream("streams-plaintext-input");
words.flatMapValues(value -> Arrays.asList(value.toLowerCase().split("\\s")))
.groupBy((key, value) -> value)
.count(Materialized.as("count"))
.toStream().to(
"streams-word-count-output",
Produced.with(Serdes.String(), Serdes.Long())
);
return builder.build();
}
}
}
With Azkarra Streams!
Features
Easy to use
Anyone with Java knowledge can easily build a streaming microservice based on Apache Kafka Streams. The Azkarra API offers advanced features on top of Kafka Streams to make you app production-ready in a just few lines of code.
Useful UI
Monitor, deploy and manage lifecycle of your KafkaStreams instances using web application.
Get quick insights from the exposed metrics and visualize topology DAGs to find optimization paths.
Designed for producton
Azkarra offers many features to make your Kafka Streams topologies run smoothly in production (e.g : Healthcheck, Metrics, Dead Letter Topic). Monitor your application via REST endpoints giving you access to tandard metrics exposed either in JSON or Prometheus format.
Secured
Azkarra supports different security mechanisms (SSL/TLL, Basic Authentication) to secure access to your data and to REST endpoints.
Open source
The Azkarra Streams project is an open initiative to enrich the Apache Kafka Streams open-source ecosystem.
The project is released under the Apache License 2.0. Anyone can contribute to the Azkarra project by opening an issue, a pull request or just by discussing with other users on the Slack Channel.