Open Source Software that I’ve authored and maintain (or have maintained in the past). I’ve also included some of the more significant contributions I’ve made to other Open Source projects. For details see my GitHub profile.
Akka is a set of open-source libraries for designing scalable, resilient systems that span processor cores and networks. Akka allows you to focus on meeting business needs instead of writing low-level code to provide reliable behavior, fault tolerance, and high performance.
The Alpakka project is an open source initiative to implement stream-aware, reactive, integration pipelines for Java and Scala. It is built on top of Akka Streams, and has been designed from the ground up to understand streaming natively and provide a DSL for reactive and stream-oriented programming, with built-in support for backpressure. Akka Streams is a Reactive Streams and JDK 9+ java.util.concurrent.Flow-compliant implementation and therefore fully interoperable with other implementations.
Alpakka Kafka lets you connect Apache Kafka to Akka Streams. It was formerly known as Akka Streams Kafka and even Reactive Kafka.
Akka Projections is a library used to build read side processors (read side views from event sourced journals in CQRS architectures) with a variety of sources, processing options, and message delivery semantics.
Previously Maintained Projects
Cloudflow (Akka Data Pipelines)
Cloudflow enables you to quickly develop, orchestrate, and operate distributed streaming applications on Kubernetes. I was a member of the original team that developed and open sourced the Cloudflow framework (see first commit).
I open sourced Kafka Lag Exporter to help users monitor Kafka consumer group lag & latency in their Apache Kafka apps. An Akka Typed application that runs on Kubernetes and exports Promtheus metrics. Introduced in the following blog post: Monitor Kafka Consumer Group Latency with Kafka Lag Exporter.
A set of three end-to-end Apache Spark Streaming applications I’ve used in presentations to teach people about Spark.
- Akka Projections - Core engineer in initial release - v1.0.0 Release Notes
- Akka/Alpakka Kafka - Alpakka Kafka support for canonical impl. of a External Shard Allocation Strategy for Akka Cluster - PR
- Akka - BoundedSourceQueue API for Akka Streams - PR
- Akka - Context mapping strategies (proposal only) - PR
- Alpakka Kafka - Commit when next offset is observed - PR
- Alpakka Kafka - Rewrite Alpakka Kafka partitioned sources - PR
- Alpakka Kafka - Add Kafka testcontainer support to Alpakka Kafka testkit - PR
- Apache Kafka - KafkaConsumer should not throw away already fetched data for paused partitions - Jira, PR #1, PR #2, PR #3
- Akka - Log messages DSL for Akka Typed - PR, Docs
- Strimzi - Grafana Monitoring Dashboards for Apache Kafka and ZooKeeper - PR, Docs
- Strimzi - Helm Chart for Strimzi - PR, Docs
- Alpakka Kafka - Apache Kafka Transactions Support - PR #1, PR #2, Docs
- Apache Kafka - Scala DSL for Kafka Streams (collaboration with Debasish Ghosh) - PR #1 (Commit), PR #2, KIP-270, Docs