git hooks で lefthook を使うように設定する
lefthook install- 予約情報の登録
curl -X POST http://localhost:8080/api/reservation \
--cookie "userId=test-user-id" \
-H "Content-Type: application/json" \
-d '{"tableId": "test-table-id"}'- 予約情報の参照
curl http://localhost:3080/api/reservationsweb-frontend が起動している状態で実行する
cd specs/web
npm run test- 各プロジェクトで
docker buildを実施する
- docker compose を立ち上げる
docker compose up- 各プロジェクトで
docker buildとPreparing for Kubernetesを実施する
- minikube を起動する
minikube start --driver=docker
minikube mount ${PWD}/write-api-server/scripts:/scripts
minikube mount ${PWD}/read-api-server/database:/database
minikube tunnel- kubernetes マニフェストを適用する
kubectl apply -f ./kubernetes/namespace.yml
kubectl apply -f ./kubernetes/read-model-data-store.yml
kubectl apply -f ./kubernetes/write-model-data-store.yml
kubectl apply -f ./kubernetes/read-model-updater.yml
kubectl apply -f ./kubernetes/read-api-server.yml
kubectl apply -f ./kubernetes/write-api-server.ymlkubectl delete -f ./kubernetes/read-api-server.yml
kubectl delete -f ./kubernetes/write-api-server.yml
kubectl delete -f ./kubernetes/read-model-updater.yml
kubectl delete -f ./kubernetes/read-model-data-store.yml
kubectl delete -f ./kubernetes/write-model-data-store.yml
kubectl delete -f ./kubernetes/namespace.yml本リポジトリは CQRS + ES 構成の実装例です.
.
└── cqrs-es-example/
├── read-api-server/ # read model
├── read-model-updater/ # read model updater
├── specs/ # Gauge による仕様
├── web-frontend/ # web フロントエンド
└── write-api-server/ # write model%%{init: {'theme':'forest'}}%%
block-beta
columns 1
WebFrontend["web-frontend"]
space
block
WriteApiServer["write-api-server"]
ReadApiServer["read-api-server"]
end
space
block
block:WriteModel
DynamoDB["DynamoDB"]
block:tables
Journal[("journal")]
Snapshot[("snapshot")]
end
end
ReadModel[("MySQL")]
end
WebFrontend --> WriteApiServer
WebFrontend --> ReadApiServer
WriteApiServer --> WriteModel
WriteModel space:2 ReadModel
WriteModel --> ReadModel
ReadApiServer --> ReadModel
style WriteModel fill:#cde498,stroke:#13540c
style tables fill:#cde498,stroke:#cde498
style DynamoDB fill:#cde498,stroke:#cde498