https://github.com/berkaroad/squat
Domain-Driven Design framework, event sourcing supported, base on EDA and CQRS.
https://github.com/berkaroad/squat
cqrs ddd eda eventsourcing eventstore
Last synced: 11 months ago
JSON representation
Domain-Driven Design framework, event sourcing supported, base on EDA and CQRS.
- Host: GitHub
- URL: https://github.com/berkaroad/squat
- Owner: berkaroad
- License: mit
- Created: 2022-10-16T04:14:03.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-10-29T16:02:54.000Z (over 2 years ago)
- Last Synced: 2023-12-16T19:00:53.274Z (over 2 years ago)
- Topics: cqrs, ddd, eda, eventsourcing, eventstore
- Language: Go
- Homepage:
- Size: 1.13 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# squat
Domain-Driven Design framework, event sourcing supported, base on EDA and CQRS.
## Feature List
* 1. Event Sourcing
Save eventstream when aggregate changed. And also can been restored from eventstreams and snapshot.
* 1) Save `eventstream` to `eventstore`
* 2) Publish `eventstream` to `eventpublisher`
* 3) Support taking snapshot for `aggregate` to `snapshotstore`
* 2. EDA
Publish events and handle them. In event handler, you can also publish another events.
* 1) Support user-customized `proxy` for event handler
* 2) Support notify when command-id related eventstream handled
* 3) Support parallel handling events by different mailbox's name
* 4) Record published eventstream to `publishedstore` when published to eventbus success
* 3. CQRS
Send command to command bus and returns two results: one is when command handled, the other is when command-id related eventstream handled.
* 1) Support user-customized `proxy` for command handler
* 2) Support notify when command handled
* 3) Support parallel handling commands by different mailbox's name
* 4) Support process manager, for communication with multiple aggregate instances