packages feed

shibuya-kiroku-adapter-0.4.0.0: shibuya-kiroku-adapter.cabal

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