Skip to content

バックグラウンドジョブキューをClaudeと設計する

バックグラウンドジョブキューの設計は、要件によって最適な技術選定が大きく変わります。「Redisが使えるか」「AWSに乗っているか」「既存のPostgreSQLを活用したいか」――こうした判断をClaude Codeと対話しながら進めると、設計の抜け漏れを大幅に減らせます。

まず、自分のシステム要件をそのままClaude Codeに投げてみましょう。たとえばターミナルで次のように入力します。

> 以下の要件に合うジョブキューライブラリを選定してください:
- Node.js + TypeScript構成
- Redisは既に運用中
- 優先度付きキューとジョブの再試行が必要
- ダッシュボードでジョブ状況を可視化したい

するとClaudeはBullMQを第一候補として挙げ、設定例まで提示してくれます。「SQSとの比較も見たい」と追加で聞けば、コスト・運用負荷・スケーラビリティの観点で整理された比較表もすぐに出てきます。

TypeScript: JavaScriptに型定義を追加した言語。型チェックによりバグを事前に発見しやすくなる。

BullMQのワーカー実装をペアプログラミングする

Section titled “BullMQのワーカー実装をペアプログラミングする”

技術が決まったら、実装フェーズもClaude Codeに伴走してもらいましょう。「メール送信ジョブのワーカーを書いて」と依頼すると、以下のような型安全な雛形を生成してくれます。

import { Worker, Job } from 'bullmq';
interface EmailJobData {
to: string;
subject: string;
body: string;
}
const worker = new Worker<EmailJobData>(
'email-queue',
async (job: Job<EmailJobData>) => {
await sendEmail(job.data);
console.log(`Job ${job.id} completed`);
},
{
connection: { host: 'localhost', port: 6379 },
concurrency: 5,
}
);
worker.on('failed', (job, err) => {
console.error(`Job ${job?.id} failed:`, err.message);
});

生成されたコードに対して「リトライ回数を3回に制限してバックオフを指数関数的にしたい」と続けて伝えれば、defaultJobOptionsの設定もその場で追記してくれます。

型安全: 変数や関数の型をコンパイル時にチェックし、型の不一致によるバグを防ぐ設計方針。

エラーハンドリングと監視設計を固める

Section titled “エラーハンドリングと監視設計を固める”

実装後に見落としがちなのが、デッドレタージョブの扱いと監視設計です。Claude Codeに次のように聞きましょう。

> BullMQで失敗したジョブをSlackに通知し、
一定期間後に自動アーカイブする仕組みを設計してください

Claudeはイベントリスナーの実装からDatadog・CloudWatchへのメトリクス送信パターンまで、運用を見据えた設計を提示します。「SQSのデッドレターキューへの転送条件も含めて」と条件を追加するだけで、インフラ設計まで一緒に考えてくれます。

Claude Codeをジョブキュー設計のペアエンジニアとして活用することで、技術選定から実装・運用設計まで一貫して高品質なシステムを短期間で構築できます。