Skip to main content

Getting started

About

Pass4s is a Scala library providing an abstract layer for app messaging. It provides implementations for platforms like AWS SQS/SNS and ActiveMQ.

Basis installation

The library is divided into multiple modules. If you're only interested in the basic abstractions, add following to your build.sbt file:

// Algebraic abstractions (Sender/Consumer)
"com.ocadotechnology" %% "pass4s-kernel" % "v0.4.9"

// Message, Destination, CommittableMessage, Connector
"com.ocadotechnology" %% "pass4s-core" % "v0.4.9"

// Broker
"com.ocadotechnology" %% "pass4s-high" % "v0.4.9"

Modules

Connectors

ActiveMq

// ActiveMQ connector - based on Akka Alpakka
"com.ocadotechnology" %% "pass4s-connector-activemq" % "v0.4.9"
// ActiveMQ pekko connector - based on Pekko Connectors
"com.ocadotechnology" %% "pass4s-connector-pekko-activemq" % "v0.4.9"

⚠️ Warning Pekko connector is an experimental addition at the moment, as it is based on nightly build

SNS/SQS

// SNS connector
"com.ocadotechnology" %% "pass4s-connector-sns" % "v0.4.9"
// SQS connector
"com.ocadotechnology" %% "pass4s-connector-sqs" % "v0.4.9"

Kinesis

// Kinesis connector
"com.ocadotechnology" %% "pass4s-connector-kinesis" % "v0.4.9"

Useful utils

Extras - provides MessageProcessor for convenient way of building rich message consumers and an easy way to bind them to processor logic.

// high-level MessageProcessor
"com.ocadotechnology" %% "pass4s-extra" % "v0.4.9"

S3proxy - seamless support for proxying large messages through s3. Useful for sorting the large messages on sns kind of problems.

// s3proxy
"com.ocadotechnology" %% "pass4s-s3proxy" % "v0.4.9"

Circe - JSON serialization/parsing support

// circe JSON senders/consumers
"com.ocadotechnology" %% "pass4s-circe" % "v0.4.9"

Phobos - XML serialization/parsing support

// phobos XML senders/consumers
"com.ocadotechnology" %% "pass4s-phobos" % "v0.4.9"

Logging middleware that uses log4cats

// logging middleware
"com.ocadotechnology" %% "pass4s-logging" % "v0.4.9"