Overview
PGMQ is a lightweight message queue built on top of PostgreSQL — no extra infrastructure, just your existing database. Keep It Simple Stupid, use postgres.
pgmq4s (codename: Dutchie) is a Scala 3 client for PGMQ, supporting JVM, Scala.js, and Scala Native.
Requires PGMQ v1.11.0+ (topic-based routing). Core messaging works with v1.10.0.
Note
This library is under active development. The API may contain breaking changes between releases.
Features
- Effect-agnostic — tagless final
PgmqClient[F]andPgmqAdmin[F]with no required effect dependency; bring your own viaPgmqEffect[F], with aFutureinstance built in and a Cats adapter (pgmq4s-cats) for Cats Effect - Multiple backends — Doobie, Skunk, Anorm, Slick
- Multiple JSON codecs — Circe, Jsoniter-scala, uPickle, Play JSON, Spray JSON
- Cross-platform — Skunk backend + Circe/Jsoniter/uPickle codecs work on JVM, JS, and Native
Work-in-progress 🚧
- Streaming (fs2)
- Native ZIO support (Quill)
- Native kyo support (kyo-sql)
In this article
