Credit Designチームでバックエンドエンジニアをしている@iwataです。主にメルペイスマート払い関連の開発をしています。 Merpay Advent Calendar 2021 の21日目の記事をお届けします。 メルペイスマート払いの開発においてもご多分に漏れず、マイクロサービスアーキテクチャを採用しています。マイクロサービス開発において避けては通れない問題として、分散トランザクションによるデータ整合性の担保があります。メルペイスマート払いマイクロサービスでは一部APIにおいて整合性担保のために、Transactional outboxパターンを用いた実装をしています。 本記事ではテーブル設計を含めたその実装の詳細を紹介したいと思います。 tl;dr Transactional outboxパターンを使ったSpanner, Pub/Sub間での整合性担保 Spannerならでは
![Cloud SpannerとCloud Pub/Subとで実装するTransactional outboxパターン | メルカリエンジニアリング](https://cdn-ak-scissors.b.st-hatena.com/image/square/b39056dc78c1590704328bf8ffd40ef64fe5b697/height=288;version=1;width=512/https%3A%2F%2Fengineering.mercari.com%2F%2Fimg%2Fogp%2Fogp_a.jpg)