keiro-0.17.0.0: keiro.cabal
cabal-version: 3.0
name: keiro
version: 0.17.0.0
synopsis: Event sourcing framework and workflow engine
description:
A library that composes kiroku, keiki, and shibuya into an
event-sourcing and workflow-orchestration framework.
license: BSD-3-Clause
license-file: LICENSE
author: Nadeem Bitar
maintainer: nadeem@gmail.com
copyright: 2026 Nadeem Bitar
category: Control
homepage: https://github.com/shinzui/keiro#readme
bug-reports: https://github.com/shinzui/keiro/issues
build-type: Simple
tested-with: ghc >=9.12 && <9.13
extra-doc-files:
CHANGELOG.md
README.md
source-repository head
type: git
location: https://github.com/shinzui/keiro.git
flag reaction-hydration-probe
description:
Emit opt-in stderr markers for process-reaction saga hydration and witness recovery
manual: True
default: False
common warnings
ghc-options:
-Wall
-Wcompat
-Widentities
-Wincomplete-record-updates
-Wincomplete-uni-patterns
-Wpartial-fields
-Wredundant-constraints
common shared
default-language: GHC2024
default-extensions:
DeriveAnyClass
DuplicateRecordFields
ImportQualifiedPost
MultilineStrings
OverloadedLabels
OverloadedStrings
PackageImports
library
import: warnings, shared
autogen-modules: Paths_keiro
exposed-modules:
Keiro
Keiro.Command
Keiro.Connection
Keiro.DeadLetter
Keiro.DeadLetter.Replay
Keiro.DeadLetter.Schema
Keiro.DeterministicId
Keiro.Inbox
Keiro.Inbox.Delegated
Keiro.Inbox.Kafka
Keiro.Inbox.Schema
Keiro.Inbox.Types
Keiro.Outbox
Keiro.Outbox.Identity
Keiro.Outbox.Kafka
Keiro.Outbox.Schema
Keiro.Outbox.Types
Keiro.ProcessManager
Keiro.ProcessManager.Reaction
Keiro.Projection
Keiro.Projection.Catalog
Keiro.Projection.Catalog.Operations
Keiro.Projection.Catalog.Preimage
Keiro.ReadModel
Keiro.ReadModel.External
Keiro.ReadModel.Rebuild
Keiro.ReadModel.Schema
Keiro.ReplayAudit
Keiro.Router
Keiro.Router.Selection
Keiro.Snapshot
Keiro.Snapshot.Codec
Keiro.Snapshot.Schema
Keiro.Subscription.Shard
Keiro.Subscription.Shard.Schema
Keiro.Subscription.Shard.Worker
Keiro.Telemetry
Keiro.Timer
Keiro.Timer.Schema
Keiro.Timer.Types
Keiro.Wake
Keiro.Workflow
Keiro.Workflow.Awakeable
Keiro.Workflow.Awakeable.Compatibility
Keiro.Workflow.Awakeable.Schema
Keiro.Workflow.Child
Keiro.Workflow.Child.Schema
Keiro.Workflow.Gc
Keiro.Workflow.Instance
Keiro.Workflow.Resume
Keiro.Workflow.Schema
Keiro.Workflow.Sleep
Keiro.Workflow.Snapshot
Keiro.Workflow.Types
if flag(reaction-hydration-probe)
cpp-options: -DKEIRO_REACTION_HYDRATION_PROBE
other-modules:
Keiro.Command.Domain
Keiro.Outbox.Rejection
Keiro.Projection.Types
Keiro.ReadModel.Rebuild.Group
Keiro.ReadModel.Rebuild.Runner
Keiro.ReadModel.Rebuild.Status
Keiro.ReadModel.Rebuild.Stream
Keiro.ReadModel.Rebuild.Versioned
Keiro.ReplayDigest
Keiro.Workflow.Awakeable.Internal.Identity
Keiro.Workflow.Child.Cancel
Keiro.Workflow.Instance.Schema
Keiro.Workflow.Journal
Paths_keiro
reexported-modules:
keiro-core:Keiro.Codec,
keiro-core:Keiro.Codec.IdDomain,
keiro-core:Keiro.Codec.Nominal,
keiro-core:Keiro.Codec.Structural,
keiro-core:Keiro.Codec.Structural.Generic,
keiro-core:Keiro.EventStream,
keiro-core:Keiro.EventStream.Validate,
keiro-core:Keiro.Integration.Event,
keiro-core:Keiro.Prelude,
keiro-core:Keiro.Snapshot.Policy,
keiro-core:Keiro.Stream,
hs-source-dirs: src
build-depends:
aeson >=2.2.2 && <2.3,
aeson-casing >=0.2 && <0.3,
base >=4.21 && <5,
base16-bytestring >=1.0.2 && <1.1,
bytestring >=0.11 && <0.13,
containers >=0.6 && <0.8,
contravariant-extras >=0.3 && <0.4,
cryptohash-sha256 >=0.11.102 && <0.12,
deepseq >=1.5 && <1.6,
effectful >=2.6 && <2.7,
effectful-core >=2.6 && <2.7,
generic-lens >=2.2 && <2.4,
hasql >=1.10 && <1.11,
hasql-pool >=1.2 && <1.5,
hasql-transaction >=1.1 && <1.3,
hs-opentelemetry-api >=1.0 && <1.1,
hs-opentelemetry-propagator-w3c >=1.0 && <1.1,
hs-opentelemetry-semantic-conventions >=1.40 && <2,
keiki >=0.9 && <0.10,
keiki-codec-json >=0.9 && <0.10,
keiro-core ^>=0.17.0.0,
kiroku-store >=0.8 && <0.9,
lens >=5.2 && <5.4,
mmzk-typeid >=0.7 && <0.8,
random >=1.2.1 && <1.4,
scientific >=0.3 && <0.4,
shibuya-core ^>=0.9.0.0,
stm >=2.5 && <2.6,
streamly >=0.11 && <0.12,
streamly-core >=0.3 && <0.4,
text >=2.1 && <2.2,
time >=1.12 && <1.15,
unliftio-core >=0.2 && <0.3,
uuid >=1.3 && <1.4,
vector >=0.13 && <0.14,
test-suite keiro-test
import: warnings, shared
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Main.hs
autogen-modules: Paths_keiro
other-modules:
CatalogEvolutionSpec
CatalogOperationsSpec
CatalogSpec
Compatibility.ReadModel011
ExternalReadSpec
GroupRebuildSpec
Paths_keiro
PreCanonicalRecoverySpec
PreimageSpec
ProjectionReplaySpec
ReactionExample
ReadModelSpec
VersionedRebuildSpec
VersionedTargetPostgresSpec
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
build-depends:
aeson >=2.2 && <2.3,
base >=4.21 && <5,
bytestring >=0.11 && <0.13,
containers >=0.6 && <0.8,
contravariant-extras >=0.3 && <0.4,
effectful >=2.6 && <2.7,
effectful-core >=2.6 && <2.7,
hasql >=1.10 && <1.11,
hasql-pool >=1.2 && <1.5,
hasql-transaction >=1.1 && <1.3,
hs-opentelemetry-api >=1.0 && <1.1,
hs-opentelemetry-exporter-in-memory >=1.0 && <1.1,
hs-opentelemetry-propagator-w3c >=1.0 && <1.1,
hs-opentelemetry-sdk >=1.0 && <1.1,
hs-opentelemetry-semantic-conventions >=1.40 && <2,
hspec >=2.11,
keiki,
keiki-codec-json,
keiro,
keiro-test-support ^>=0.17.0.0,
kiroku-store >=0.8 && <0.9,
process >=1.6 && <1.7,
shibuya-core ^>=0.9.0.0,
stm >=2.5 && <2.6,
streamly-core >=0.3 && <0.4,
text >=2.1 && <2.2,
time >=1.12 && <1.15,
unliftio-core >=0.2 && <0.3,
uuid >=1.3 && <1.4,
vector >=0.13 && <0.14,
benchmark keiro-bench
import: warnings, shared
type: exitcode-stdio-1.0
hs-source-dirs: bench
main-is: Main.hs
other-modules:
InboxDelegatedBench
ProducerIdentityBench
ReadModelBench
ghc-options:
-threaded
-rtsopts
-with-rtsopts=-N
build-depends:
aeson >=2.2.2 && <2.3,
base >=4.21 && <5,
bytestring >=0.11 && <0.13,
containers >=0.6 && <0.8,
deepseq >=1.5 && <1.6,
directory >=1.3 && <1.4,
effectful >=2.6 && <2.7,
filepath >=1.4 && <1.6,
hasql >=1.10 && <1.11,
hasql-transaction >=1.1 && <1.3,
hs-opentelemetry-api >=1.0 && <1.1,
hs-opentelemetry-sdk >=1.0 && <1.1,
keiki >=0.9 && <0.10,
keiro,
keiro-core ^>=0.17.0.0,
keiro-test-support ^>=0.17.0.0,
kiroku-store >=0.8 && <0.9,
shibuya-core ^>=0.9.0.0,
streamly-core >=0.3 && <0.4,
tasty-bench >=0.4,
text >=2.1 && <2.2,
time >=1.12 && <1.15,
uuid >=1.3 && <1.4,