Skip to content

yyYank/2021-fall-debezium-sample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2021-fall-debezium-sample

JJUG CCC Fall 2021のDebeziumについてのサンプルコードです

架空のストーリー

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

リポジトリ構成

便宜上、モノレポっぽくしています

album-api

モノリスからアルバムの業務ドメイン境界を抽出して作っているAPIです

album-worker

モノリスのDBの変更イベントをサブスクライブしてalbum-apiへリクエストするバックグラウンドワーカーです

environments

Dockerで環境を構築するためのものが入っています:

  • MySQL
  • ZooKeeper
  • Kafka
  • Kafka Connect

About

2021-fall-debezium-sample

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages