Object-Oriented Conference 2024
採択
2024/03/24 15:00〜
Track F(共1-203)
企画セッション(100分)
PC持込推奨

CQRS/Event Sourcingシステム実装入門

j5ik2o かとじゅん j5ik2o
14

CQRS/Event Sourcingは、非機能要件の側面で注目されがちですが、本来はDDDのための設計パターンの一つです。
今回は言語非依存に実装する方法を共有しつつ、一緒に手を動かして理解できるようするハンズオン用セッションです。

想定条件

  • コードを書きたい人はPCをご持参ください
  • 事前にソースコードとセットアップ手順を共有します。あかじめセットアップし動作確認可能な状態でご参加ください。
  • 対象言語でFizzBuzz以上のプログラムが書ける開発者向け
    ※難しいコードは書きません。手本のコードは共有します。
  • 参加者はプログラミング言語としてGoもしくはRustの好きな方を選択できます
    ※このセッションを受けると他の言語でも実装できるようになります
  • 想定データベースとしてはコマンド側がDynamoDB、クエリ側はMySQL(RDS)
  • 実装ではREST API,GraphQLを使うのでその経験があると尚よしです
  • 実行環境はローカルのDocker
    ※Dockerを前提していますが、AWS環境にデプロイする前提の構成となります
  • 開発環境のOSはmacOSおよびWindows11/WSL2
  • ツールはDocker,Git,シェル環境など

コードはある程度土台が提供されますので、そこに新しい機能を追加して理解を深めることになります。

追記(1/31)

当日 解説するソースコードを以下に共有します。
コードやドキュメントはまだFIXしていません。当日まで追加・変更されますが、基本的な設計の考え方は変わりません。

Rust版 https://github.com/j5ik2o/cqrs-es-example-rs
Go版 https://github.com/j5ik2o/cqrs-es-example-go
※Rust版/Go版どちらも実現する機能は変わりません。

追記(3/5)
当日説明する資料をこちら。
https://github.com/j5ik2o/cqrs-es-example/wiki/Introducing_CQRS_ES_System_OOC2024

当日手を動かす方は、開発環境のセットアップ及び上記リポジトリのコードをIDEなどでインポートしビルド可能な状態にしておいてください。