Home

Awesome

Example of a CQRS event store

このリポジトリは Amazon Web Services ブログの Amazon DynamoDB を使った CQRS イベントストアの構築 を参考に Rust でイベントソーシングを試してみたリポジトリです。

Example

MySQL の DB を立ち上げてマイグレーションを実行する

docker compose up --wait
cargo run --bin migrate --features migrate

MySQL の設定は環境変数によって変更することができます。

環境変数名説明デフォルト値
MYSQL_USERNAMEMySQL に接続するためのユーザー名root
MYSQL_PASSWORDMySQL に接続するためのパスワードroot
MYSQL_PORTローカルにマッピングする MySQL のポート3306
MYSQL_DATABASEMySQL のデータベース名widget

サーバーを立ち上げる

cargo run --release

MySQL クライアントで接続する

mysql -h 127.0.0.1 --user ${MYSQL_USERNAME:-root} -p${MYSQL_PASSWORD:-root} --port ${MYSQL_PORT:-3306} --database ${MYSQL_DATABASE:-widget}

リクエスト

Widget を作成する:

curl -s http://localhost:8080/widgets \
  -H "Content-Type: application/json" \
  -d '{ "widget_name": "widget name 1", "widget_description": "widget description 1"}'

Widget の名前を変更する:

curl -v "http://localhost:8080/widgets/${WIDGET_ID}/name" \
  -H "Content-Type: application/json" \
  -d '{ "widget_name": "widget name 2"}'

Widget の説明を変更する:

curl -v "http://localhost:8080/widgets/${WIDGET_ID}/description" \
  -H "Content-Type: application/json" \
  -d '{ "widget_description": "widget description 2"}'