Systems don't come alone. In the modern world of microservices and cloud deployment, new components must interact with legacy systems, making integration an important key to success. Reactive Streams give us a technology-independent tool to let these heterogeneous systems communicate without overwhelming each other.
The Apache Pekko Connectors project is an open source initiative to implement stream-aware, reactive, integration pipelines for Java and Scala. It is built on top of Pekko 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. Pekko Streams is a Reactive Streams and JDK 9+ java.util.concurrent.Flow-compliant implementation and therefore fully interoperable with other implementations.
Pekko Connectors is a fork of Alpakka 4.0.0, prior to the Akka project's adoption of the Business Source License.
Apache Pekko Connectors are documented at https://pekko.apache.org/docs/pekko-connectors/current/.
To keep up with the latest releases check out Pekko Connectors releases and Pekko Connectors Kafka releases.
The build commands in the pekko repo are also useful here. Java 8 should work well for building from source with this repo. Building the Paradox docs is significatntly harder if you use Java 17 or above. You will need to specify a large number of --add-opens
settings.
This repo contains shell scripts. These scripts are designed to help with the testing of Apache Pekko Connectors. Please avoid running the scripts without checking if you need to and try to understand what the script does first.
There are some binary files in this repo that are used in testing. These files do not contain compiled artifacts.
- file/src/test/resources/nested-sample.tar
- google-cloud-pub-sub-grpc/src/main/resources/GSR2.crt
- s3/src/test/resources/keystore.jks
There are details in the Contributing page. That page also has guidelines about how to prepare Pull Requests.
You can join these forums and chats to discuss and ask Pekko and Pekko connector related questions:
- GitHub discussions: for questions and general discussion.
- Pekko users mailing list: for Pekko Connectors usage discussions.
- Pekko dev mailing list: for Pekko Connectors development discussions.
- GitHub issues: for bug reports and feature requests. Please search the existing issues before creating new ones. If you are unsure whether you have found a bug, consider asking in GitHub discussions or the mailing list first.
Contributions are very welcome. If you have an idea on how to improve Pekko, don't hesitate to create an issue or submit a pull request.
See CONTRIBUTING.md for details on the development workflow and how to create your pull request.
Apache Pekko is governed by the Apache code of conduct. By participating in this project you agree to abide by its terms.
Apache Pekko is available under the Apache License, version 2.0. See LICENSE file for details.
Pekko Connectors components are not always binary compatible between releases. API changes that are not backward compatible might be introduced as we refine and simplify based on your feedback. A module may be dropped in any release without prior deprecation.
Our goal is to improve the stability and test coverage for Pekko Connectors APIs over time.