Skip to content

feat: restore the typed Haskell domain model - #34

Merged
0xgleb merged 3 commits into
masterfrom
feat/0.4-haskell-domain
Aug 12, 2026
Merged

0xgleb merged 3 commits into
masterfrom
feat/0.4-haskell-domain

Conversation

@0xgleb

@0xgleb 0xgleb commented Jul 15, 2026 •

Copy link
Copy Markdown
Member

Restores the existing typed aggregate surface in the monorepo Haskell binding and packages it by Aggregate, Stream, and Job features. Adds compile-checked job membership, typed stream identities, fallible replay validation, checked sequence arithmetic, and engine-compatible event metadata without introducing a generic Types module.

Verification: nix build .#haskell --no-link; hlint bindings/haskell/src bindings/haskell/test

Closes #70.


This is part 16 of 32 in a stack made with GitButler:

@coderabbitai

coderabbitai Bot commented Jul 15, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

@0xgleb, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 5 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 7252540f-3529-4a86-ab75-321715d63179

📥 Commits

Reviewing files that changed from the base of the PR and between 28434aa and b5cc0c5.

📒 Files selected for processing (11)
  • bindings/haskell/event-sorcery.cabal
  • bindings/haskell/src/EventSorcery/Aggregate.hs
  • bindings/haskell/src/EventSorcery/Engine/Internal.hs
  • bindings/haskell/src/EventSorcery/Job.hs
  • bindings/haskell/src/EventSorcery/Job/Definition.hs
  • bindings/haskell/src/EventSorcery/Store.hs
  • bindings/haskell/src/EventSorcery/Stream.hs
  • bindings/haskell/test/DomainSpec.hs
  • bindings/haskell/test/JobSpec.hs
  • bindings/haskell/test/StoreSpec.hs
  • bindings/haskell/test/WireSpec.hs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/0.4-haskell-domain

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@0xgleb
0xgleb force-pushed the feat/0.4-haskell-jobs branch from 481f8ac to 52a0d1a Compare July 15, 2026 10:20
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-domain branch from ff020ba to b7a0c16 Compare July 15, 2026 10:20
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-jobs branch from 52a0d1a to 5a44a19 Compare July 15, 2026 16:32
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-domain branch from b7a0c16 to 65305fe Compare July 15, 2026 16:32
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-jobs branch from 5a44a19 to ecd3ce2 Compare July 15, 2026 16:53
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-domain branch from 65305fe to 6be159c Compare July 15, 2026 16:53
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-domain branch from 401c9f9 to cf770c4 Compare July 16, 2026 08:11
@0xgleb
0xgleb marked this pull request as ready for review July 16, 2026 08:11
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-jobs branch from 6bcc70b to 9f2a692 Compare July 16, 2026 08:19
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-domain branch from cf770c4 to 66f81a8 Compare July 16, 2026 08:19
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-jobs branch from 9f2a692 to 52be823 Compare July 16, 2026 08:31
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-domain branch from 66f81a8 to 63fdb46 Compare July 16, 2026 08:31
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-jobs branch from 52be823 to 99e2659 Compare July 16, 2026 08:33
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-domain branch from 63fdb46 to 22871db Compare July 16, 2026 08:33
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-jobs branch from 99e2659 to 44a9204 Compare July 16, 2026 09:43
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-domain branch from 22871db to 616b2fb Compare July 16, 2026 09:43
@0xgleb 0xgleb added this to the 0.4.0 milestone Jul 16, 2026
@0xgleb 0xgleb moved this from Todo to In Progress in event-sorcery Jul 16, 2026
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-jobs branch from 44a9204 to cc59463 Compare July 16, 2026 13:57
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-domain branch from 616b2fb to 21eb9dc Compare July 16, 2026 13:57
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-jobs branch from cc59463 to 087a39b Compare July 16, 2026 23:16
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-jobs branch from 087a39b to cb53757 Compare August 12, 2026 01:47
Base automatically changed from feat/0.4-haskell-jobs to master August 12, 2026 01:57
@0xgleb
0xgleb force-pushed the feat/0.4-haskell-domain branch from 21eb9dc to c54fae6 Compare August 12, 2026 02:38
@0xgleb
0xgleb enabled auto-merge August 12, 2026 02:38
@0xgleb
0xgleb added this pull request to the merge queue Aug 12, 2026
Merged via the queue into master with commit 00a3474 Aug 12, 2026
8 checks passed
@0xgleb
0xgleb deleted the feat/0.4-haskell-domain branch August 12, 2026 02:50
@github-project-automation github-project-automation Bot moved this from In Progress to Done in event-sorcery Aug 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Haskell lacks a typed aggregate domain model

1 participant