• Alpakka Tech Lead @ Lightbend
• Stockholm, Sweden
Enno Runne
Quick Intro to Lightbend
2017
Acquired OpsClarity
6m+ OSS Downloads/month
Launched Fast Data Platform
Investment from IBM
Launched 

Lagom Framework
2016
2015
Spark Support
500k+ OSS Downloads/
month
Acquired 

Play Framework
Founded by 

Martin Odersky, Scala
creator & Jonas Bonér,
Akka creator
2012
20132011
2014
Launched 

Reactive Platform
Published the

Reactive Manifesto
Enterprise
Integrations
Enterprise Integration Patterns
• The classic book on integration
• Gregor Hohpe, Bobby Woolf
• Published 2003
http://www.enterpriseintegrationpatterns.com
Reactive
Integrations
Listen to
queue
Download
file
Extract data
Store
file
Queue
File
source
File-
store
Listen to
queue
Download
file
Extract data
Store
file
Listen to
MQTT
topic
Download
file via
HTTP
Parse as
JSON
Store page
content on
AWS S3
MQTT
Broker
Web
server
AWS
S3
1. Queue message
2. Parse JSON
3. Request file
4. File content entity data
5. Store file on S3
Data flow
Step 1 Step 4Step 2 Step 3
Buffering data
• May cure the immediate issue
• All buffering is limited
Downstream
Source SinkFlow Flow
Streaming with back-pressure
Dynamic push/pull
• Push when downstream is faster
• Pull when upstream is faster
Reactive Integrations
Cross-system back-pressure support
is the key thing Reactive Integrations
bring to the table.
Reactive Streams
reactive-streams.org
Part of JDK 9 (java.util.concurrent.Flow)
http://www.reactive-streams.org/
Compliant libraries allow full interoperability
Reactive Streams
A standard for asynchronous
stream processing with non-
blocking back-pressure.
Listen to
MQTT
topic
Download
file via
HTTP
Parse as
JSON
Store page
content on
AWS S3
MQTT
Broker
Web
server
AWS
S3
Streams on multiple levels
Akka?
How does streaming relate to
Akka Streams run on top of Akka Actors
Akka takes care of the intricacies of signalling demand
• Domain Specific Language to describe streams
• Mechanics to map these stream to be executed on top of actors
• Full support to connect to any Reactive Streams compliant library
Akka Streams
Extends Reactive Streams to be used
• for local file access
• over TCP as TCP supports flow control
• for HTTP with Akka HTTP
Akka Streams
When to use what abstraction
modeling power
complexity
actors
streams
(completable)
futures
java.concurrency
Live
Coding
Listen to
MQTT
topic
Download
file via
HTTP
Parse as
JSON
Store page
content on
AWS S3
MQTT
Broker
Web
server
AWS
S3
Example scenario
Listen to
MQTT
topic
Download
file via
HTTP
Parse as
JSON
Store page
content on
AWS S3
MQTT
Broker
Web
server
AWS
S3
Example scenario
Alpakka is a Reactive Enterprise Integration
library for Java and Scala, based on Reactive
Streams and Akka.
Alpakka
The short version: “Endpoints for Akka Streams”
Alpakka
• Typed message interchange,
compiler tracks compatibility
• Back-pressure as specified by
Reactive Streams
• No OSGi support
• Relies on Akka Streams; evolving
rapidly, but many integration
requirements are not covered, yet
• Moving fast, docs split between
Akka and Alpakka sites
My view on Apache Camel vs Alpakka
Apache Camel
• Data is wrapped in Exchange instance,
type can only be inspected
• No back-pressure awareness, can
connect to Reactive Streams compliant
systems
• OSGi support
• Full-featured framework to express
integrations
• Comprehensive docs and books
Alpakka connectors for cloud services
Amazon DynamoDB
Amazon Kinesis data
streams & firehose
AWS Lambda
Amazon S3
Amazon SNS
Amazon SQS
Google Cloud Pub/
Sub
Google Firebase
Cloud Messaging
Azure Storage Queue
Alpakka connectors for data stores
Elasticsearch
Alpakka connectors for messaging
MQTT
(Eclipse Paho)
AMQP
(RabbitMQ)
IronMQ
JMS
Java Messaging Service
Apache Kafka
… not as fancy logos, but very well suited for the streaming approach.
Preparations for Alpakka 1.0 include
• structure all modules the same
• improve chances to stay binary compatible
• ensure good test coverage
Help with this is highly appreciated…
The road to Alpakka 1.0
Code, Issues, Pull Requests @ Github
• https://github.com/akka/alpakka
• https://github.com/akka/alpakka-kafka
Questions, Discussions
• https://discuss.lightbend.com/c/akka
Alpakka community
Thank you!
@ennru
enno.runne@lightbend.com
https://www.lightbend.com/alpakka
@akkateam
Join the Alpakka community
at github.com/akka/alpakka
https://github.com/akka/alpakka-samples

Pakk Your Alpakka: Reactive Streams Integrations For AWS, Azure, & Google Cloud