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 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 connector
"com.ocadotechnology" %% "pass4s-connector-sns" % "v0.4.9"
// SQS connector
"com.ocadotechnology" %% "pass4s-connector-sqs" % "v0.4.9"
// 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"