JJUG CCC Fall 2021のDebeziumについてのサンプルコードです
- 音楽サイトのモノリスがあった
- 音楽配信、歌詞表示、ランキング、ECサイト、音楽系の独自記事などのコンテンツ
- アルバム関連のドメイン境界を分離してマイクロサービス化すると、今後の機能リリース的に嬉しいことがわかったのでマイクロサービス化を進めている
- 既存のモノリス側のエンドポイントから徐々にマイクロサービスへ移行することになった
- これまでは単純なアルバムとトラック情報、そして曲ごとの五段階の評価(★3つなど)しかなかった
- 今後マイクロサービスとしてアルバム情報とアルバムを気に入ってる人の情報を集計して別のアルバムや曲をレコメンドにしたり、レビューをさらに詳細にコメントを書けるようにしたり
- アルバム関連のデータ移行をしたいが、音楽サイトの本番を止めるわけにはいかない
- モノリス側に手を加えるのもなかなか難しい
- 変更データキャプチャを使って徐々にデータを同期する
便宜上、モノレポっぽくしています
モノリスからアルバムの業務ドメイン境界を抽出して作っているAPIです
モノリスのDBの変更イベントをサブスクライブしてalbum-apiへリクエストするバックグラウンドワーカーです
Dockerで環境を構築するためのものが入っています:
- MySQL
- ZooKeeper
- Kafka
- Kafka Connect