SQSで重い仕事を後ろへ回す
APIは依頼を受け付けて素早く返し、Workerがキューから仕事を受け取ってSlack取得・DB登録を完了させる。
TL;DR
- APIはメッセージ投入後に202を返す。
- 成功した仕事だけを削除する。
- DLQで失敗を隔離して調査する。
01 全体像 — 受付と作業箱を分ける
ワークスペース同期は重いため、APIはSQSに依頼を入れ、WorkerがSlack APIとDBを扱う。

分離の価値: 利用者の待ち時間と、外部API・DBを伴う重い処理を切り離せる。
02 成功までの約束 — 受信、不可視、削除

| 状態 | Workerの動作 |
|---|---|
| 受信 | ロングポーリングで取得 |
| 処理成功 | DB登録後に削除 |
| 処理失敗 | 削除せず、可視性タイムアウト後に再試行 |
03 失敗を隔離する — DLQ

- 同じ失敗を延々と処理しない
- 失敗した内容を一覧で調査する
- DLQ滞留数をCloudWatchアラームの対象にする
結論
- APIは受理、Workerは実行という役割分担にする。
- 成功後削除と可視性タイムアウトで失敗を再試行できる。
- DLQを監視し、失敗を見えないまま放置しない。