cabal-version: 3.0
name: shibuya-kiroku-adapter
version: 0.4.0.0
synopsis:
Kiroku event store adapter for the Shibuya queue processing framework
description:
A Shibuya adapter that integrates with Kiroku, a PostgreSQL event store.
Wraps Kiroku's push-based subscriptions into Shibuya's pull-based Adapter
interface, enabling supervised multi-subscription processing with failure
isolation, per-subscription metrics, and coordinated graceful shutdown.
.
Events flow through @kiroku-store@'s ack-coupled @subscriptionAckStream@
bridge and are lifted into Shibuya's effect stack via @Stream.morphInner@.
Each finalized Shibuya @AckDecision@ drives Kiroku checkpointing, retry,
dead-lettering, or halt before the worker moves to the next event.
author: Nadeem Bitar
maintainer: nadeem@gmail.com
license: BSD-3-Clause
build-type: Simple
category: Concurrency, Database, Eventing
extra-doc-files: CHANGELOG.md
homepage: https://github.com/shinzui/kiroku
bug-reports: https://github.com/shinzui/kiroku/issues
source-repository head
type: git
location: https://github.com/shinzui/kiroku.git
common common
default-language: GHC2024
default-extensions:
DeriveAnyClass
DuplicateRecordFields
OverloadedLabels
OverloadedStrings
ghc-options: -Wall
library
import: common
exposed-modules:
Shibuya.Adapter.Kiroku
Shibuya.Adapter.Kiroku.Convert
build-depends:
, aeson >=2.1 && <2.3
, base >=4.18 && <5
, effectful-core >=2.5 && <2.7
, hs-opentelemetry-api ^>=1.0
, hs-opentelemetry-semantic-conventions ^>=1.40
, kiroku-store ^>=0.3
, shibuya-core >=0.8 && <0.9
, stm >=2.5 && <2.6
, streamly-core >=0.3 && <0.4
, text >=2.0 && <2.2
, unordered-containers >=0.2 && <0.3
, uuid >=1.3 && <1.4
hs-source-dirs: src
test-suite shibuya-kiroku-adapter-test
import: common
type: exitcode-stdio-1.0
main-is: Main.hs
hs-source-dirs: test
ghc-options: -threaded -rtsopts -with-rtsopts=-N
build-depends:
, aeson >=2.1 && <2.3
, base >=4.18 && <5
, containers >=0.6 && <0.8
, directory
, effectful >=2.4 && <2.7
, ephemeral-pg >=0.2 && <0.3
, generic-lens >=2.2 && <2.4
, hasql >=1.10 && <1.11
, hasql-pool >=1.2 && <1.5
, hs-opentelemetry-api ^>=1.0
, hspec >=2.10 && <2.12
, kiroku-store ^>=0.3
, kiroku-test-support
, lens >=5.2 && <5.4
, shibuya-core >=0.8 && <0.9
, shibuya-kiroku-adapter
, stm >=2.5 && <2.6
, streamly-core >=0.3 && <0.4
, text >=2.0 && <2.2
, time >=1.12 && <1.15
, unordered-containers >=0.2 && <0.3
, uuid >=1.3 && <1.4