Site icon imageTomoMemo.dev

Memo on programming. Provided by Tomo with passion.

API設計dynamo dbの更新ロジック案

概要

  • 郵便番号取得APIを作る
    • 目的:住所入力の手間を省く(UI) / 住所データの管理を楽にする(dev ex) ※developer experienceの略
  • 郵便番号と住所の関係性
    • 1:1→1:Nに変更する
    • 郵便番号と住所は毎年若干の変更があるので都度対応する必要がある(ごく稀にクレームくる)
  • 社内でAPIモダン化に際してdynamo dbを使う流れが来ているのでそれを踏襲

調べたこと

複数の住所情報を更新(&削除も伴う)するにはどうするのか?

  • TransactWriteItemsが使えそう
    • 複数レコードの一貫性ある更新ができそう(知らんけど)
    • トランザクション内のアイテムの合計サイズは 4 MB を超えることがNGなので、複数回バッチ処理をたたく仕組みが必要になりそう(AWS Lambdaを使う)

https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/transaction-apis.html

検討&仮結論

複数回バッチ処理をたたくことになるのはあまりイケてないので、他のやり方探すほうがいい気がしている。とはいえ、数万件単位での変更はないのでこのやり方でも良さそう。

郵便番号or住所変更あり → 郵便番号or住所変更を検知 → バッチ処理実行 → 郵便番号or住所の変更完了

流れはこんな感じ。

PS.郵便番号の変更は月に1回程度らしい

https://bit.ly/3YUM3Ij

Powered by Tomo with passion.