apache / pekko-connectors   1.0.2

Apache License 2.0 Website GitHub

Apache Pekko Connectors is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Apache Pekko.

Scala versions: 3.x 2.13 2.12

Apache Pekko Connectors scaladex-badge maven-central-badge CI on GitHub actionsNightly Builds

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.

Documentation

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.

Building From Source

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

Running Tests

There are details in the Contributing page. That page also has guidelines about how to prepare Pull Requests.

Community

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.

Contributing

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.

Code of Conduct

Apache Pekko is governed by the Apache code of conduct. By participating in this project you agree to abide by its terms.

License

Apache Pekko is available under the Apache License, version 2.0. See LICENSE file for details.

Caveat Emptor

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.