Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/j5ik2o/cqrs-es-example-go
An example of CQRS/Event Sourcing and GraphQL implemented in Go.
https://github.com/j5ik2o/cqrs-es-example-go
cqrs ddd event-sourcing graphql
Last synced: 11 days ago
JSON representation
An example of CQRS/Event Sourcing and GraphQL implemented in Go.
- Host: GitHub
- URL: https://github.com/j5ik2o/cqrs-es-example-go
- Owner: j5ik2o
- License: apache-2.0
- Created: 2023-11-02T13:51:45.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-22T02:08:40.000Z (26 days ago)
- Last Synced: 2024-10-23T03:11:02.231Z (25 days ago)
- Topics: cqrs, ddd, event-sourcing, graphql
- Language: Go
- Homepage:
- Size: 634 KB
- Stars: 19
- Watchers: 2
- Forks: 4
- Open Issues: 9
-
Metadata Files:
- Readme: README.ja.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# cqrs-es-example-go
## 概要
これはGoで実装されたCQRS/Event Sourcing + GraphQLの例です。
このプロジェクトは、イベントソーシングのために[j5ik2o/event-store-adapter-go](j5ik2o/event-store-adapter-go)を使用しています。
[English](./README.md)
## フィーチャー
- [x] Write API Server(GraphQL)の実装
- [x] Read API Server(GraphQL)の実装
- [x] Local版のRead Model Updaterの実装
- [x] Docker Composeによる動作確認
- [ ] AWS Lambda版のRead Model Updaterの実装
- [ ] AWSへのデプロイ## コンポーネント構成
- Write API Server
- GraphQLによって実装された書き込み専用API
- イベントに基づく集約は[j5ik2o/event-store-adapter-go](https://github.com/j5ik2o/event-store-adapter-go)によって実装されている。
- Read Model Updater
- ジャーナルに基づいて読み取りモデルを構築するLambda
- ローカルで、Lambdaの動作をエミュレートするコードを実行する(local-rmu)
- Read API Server
- GraphQLによって実装された読み取り専用API## スタック
このOSSリポジトリは、主に以下の技術スタックを利用している。
- [99designs/gqlgen](https://github.com/99designs/gqlgen)
- [jmoiron/sqlx](https://github.com/jmoiron/sqlx)
- [j5ik2o/event-store-adapter-go](https://github.com/j5ik2o/event-store-adapter-go)## システムアーキテクチャ図
![](docs/images/system-layout.png)
## 開発環境
- [ツールのセットアップ](docs/TOOLS_INSTALLATION.ja.md)
### ローカル環境
- [Docker Composeでのデバッグ](docs/DEBUG_ON_DOCKER_COMPOSE.ja.md)
## 参考リンク
- [Rust版](https://github.com/j5ik2o/cqrs-es-example-rs)
- [TypeScript版](https://github.com/j5ik2o/cqrs-es-example-js)
- [共通ドキュメント](https://github.com/j5ik2o/cqrs-es-example-docs)