Open Source
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.
Maintainer
Apache Pekko
An open source fork of Akka incubating at Apache.
Previously Maintained Projects
Alpakka
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
Alpakka Kafka lets you connect Apache Kafka to Akka Streams. This project was formerly known Akka Streams Kafka and Reactive Kafka originally.
Akka (Streams)
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.
Akka Projections
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.
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).
Kafka Lag Exporter
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.
Author
connect-prism
I’m the author of the node.js connect-prism and grunt-connect-prism libraries. Use prism to record, mock, and proxy HTTP traffic as middleware with the connect middleware framework.
learning-spark
A set of three end-to-end Apache Spark Streaming applications I’ve used in presentations to teach people about Spark.
exactly-once-streams
An engineering report and a set of PoC’s that demonstrate “Exactly Once” message delivery semantics in Apache Kafka using Kafka base clients, Kafka Streams, and Alpakka Kafka.
Contributions
Noteworthy contributions over the years. This is not an exhaustive list of contributions.
- Testcontainers - Apache Kafka containerized cluster for testing - PR
- 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 - 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 - 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
- Play! Web Framework - Relative and Canonical URL Path Support - PR, Docs