LEARN » ALPAKKA

akka-alpakka-reverse

Reactive Integration for the World of Data in Motion

Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka. Enterprise development often requires exchanging information with other systems—through different transports, using different data formats, and over different protocols. To gain real-time insight, endless streams of data must be routed and processed in a reliable, scalable, and performant way.

It is difficult to integrate data from heterogeneous sources without introducing bottlenecks that restrict the volume of data or the number of connections. Alpakka offers pluggable connectors to tap data from a variety of systems, convert it, and stream it to other systems and technologies. Alpakka delivers the scalability, reliability, and performance required to take full advantage of the information crucial to your business.

Alpakka provides interfaces to other widely used technologies such as Apache Kafka, JMS, MQTT, and a range of cloud services by AWS, Microsoft, and Google. Connectors in Alpakka provide a simple API to configure connection details and express ways to read from, or write to, the required technology.

Once the data is flowing in Alpakka, you have access to the the whole spectrum of Akka’s comprehensive streaming toolkit. Akka Streams features an expressive API that meets everything from simple to advanced requirements. Its backpressure levels out the different speeds of processing between senders and receivers, thereby preventing a slow or unavailable receiver from bringing the whole system down.

Start Learning

Start Building

akka-alpakka-reverse

Features
and Capabilities

Stream-native Reactive Integration Based on Akka Streams

Alpakka is based on Akka Streams and provides first class support for streaming—merging streams, splitting streams, and more. It enables use of reactive programming—providing a rich DSL supporting fully asynchronous and non-blocking processing.

Built-in Backpressure and Throttling for Resilience

No need to worry about efficient producers overwhelming slow consumers. Alpakka's built-in backpressure—based on the Reactive Streams specification—ensures a smooth flow of data at all times, and when you need more specific control, provides throttling.

Fully Typed APIs to Describe Streaming Data

All of Alpakka’s APIs are explicit about what data types are being streamed, the programming language’s compiler makes sure only compatible streams can get interconnected.

Rich Toolset for Handling Failures

Akka Streams provides pre-built solutions to react to failure in a controlled and well-behaved way by applying recovering logic, restarts with back-off, and more.

Full interoperability with other Reactive Streams-compliant Libraries

Other Reactive Streams-compliant libraries (such as RxJava, Reactor) can easily be connected into streams with Alpakka modules.

akka-alpakka-reverse

Supported Technologies

Pluggable Connectors for a Wide Range of Cloud Servies

Alpakka offers connectors for a range of cloud services, including:

  • Amazon DynamoDB
  • Amazon Kinesis data streams and firehose
  • AWS Lambda
  • Amazon SNS
  • Amazon SQS
  • Google Cloud Pub/Sub
  • Google Firebase Cloud Messaging
  • Azure Storage Queue

Connectivity to Data Stores

Alpakka makes it easy to connect to a variety of datastore technologies, including:

  • Apache Cassandra
  • Apache Geode
  • Apache HDFS
  • Apache Kudu
  • Elasticsearch
  • MongoDB
  • OrientDB

Messaging Technologies

Alpakka's streaming data approach works well with many messaging technologies, including:

  • AMQP
  • Apache Kafka
  • IronMQ
  • JMS
  • MQTT

Formats and Protocols

Alpakka supports working with:

  • CSV
  • Streaming JSON data
  • Files
  • FTP
  • HTTP
  • Streaming XML data