Engineering decision
A Postgres queue, Amazon SQS or Kafka for background jobs?
Three models chose a Postgres-backed queue. Gemini chose SQS. The final answer says when to switch.
The question
Our team of 5 needs a background job system for roughly 3,000 jobs per minute (emails, report generation, webhooks), with retries and scheduling. We already run Postgres and deploy on AWS. Options: a Postgres-backed queue (SELECT FOR UPDATE SKIP LOCKED, for example via a library), Amazon SQS with workers, or Kafka. Which should we pick, and what would make us change our minds?
The answer that came back
Pick a Postgres-backed queue (Oban, River, Graphile Worker, pg-boss, or similar, depending on your language). 3,000 jobs/min is only ~50/sec, well within SKIP LOCKED's capacity. You also get transactional enqueue with your business data (no dual-write bugs), built-in retries and scheduling, SQL-level visibility, and no new infrastructure for a 5-person team. Change your mind and move to SQS if sustained load grows roughly 10-20x, if job-table churn causes bloat or contention that you can't fix with tuning (partitioning, aggressive vacuum, a separate queue database), or if you need cross-service decoupling and the queue shouldn't share fate with your primary DB; choose Kafka only if you need event streaming or replay, which a job queue doesn't.
The service cut the end of this answer short. The incomplete last sentence is not shown.
Agreement. Three of the four models chose the same option.
What each model said
Each answer is the model’s own words, with formatting marks removed.
Claude Sonnet 5.5
Pick a Postgres-backed queue (Oban, Graphile Worker, River, or pg-boss, depending on language). 3,000 jobs/min is only ~50/sec, trivial for SKIP LOCKED. You get transactional enqueue (no dual-write bugs), built-in retries, scheduling, and visibility via SQL, with no new infrastructure for a 5-person team. Switch to SQS if sustained load grows ~20x, job tables cause bloat or contention, or you need cross-service decoupling. Kafka only for event streaming/replay needs, not job queues.
GPT-4.1
Pick a Postgres-backed queue (using SKIP LOCKED), since you already run Postgres, 3,000 jobs/minute is well within its capacity, and it simplifies ops for a small team. Use a robust library (like que or pg-boss). Switch to SQS or Kafka only if you need much higher scale, multi-region reliability, or decoupling from your database.
Gemini 3.5 Flash-Lite
Pick AWS SQS. At 3,000 jobs/minute (~50/sec), Postgres risks connection exhaustion and vacuum bloat under heavy transactional writes. Kafka is massive over-engineering for simple queues without event-streaming needs. SQS natively handles retries, DLQs, scheduling (via delay seconds), scales effortlessly, and requires zero infrastructure management on AWS. Change your mind if: You need complex multi-table transactional consistency between job creation and business data (favor Postgres), or your throughput scales 100x and requires event replay (favor Kafka).
Grok 4.20
Pick Postgres-backed queue (SKIP LOCKED). It reuses your existing Postgres, adds zero new services for a 5-person team, and easily handles 50 jobs/sec with retries + scheduling via standard libraries. SQS is viable but unnecessary; Kafka is massive overkill. Change to SQS only if volume exceeds ~15k/min or DB contention becomes measurable.
Where they differed
Claude, GPT-4.1 and Grok chose a Postgres-backed queue. Gemini chose Amazon SQS, worried about connection exhaustion and table bloat in Postgres under write-heavy load. The final answer says what would make the team switch: roughly 10 to 20 times the load, bloat that tuning cannot fix, or a need to separate the queue from the main database.
About this run
Run on 26 October 2026 in quick mode with four models (Claude Sonnet 5.5, GPT-4.1, Gemini 3.5 Flash-Lite and Grok 4.20), one round, no cross-critique. Web search was off.
Pilot’s summary is advisory input, not a decision. Models can be wrong together, and agreement is not proof. This is an example, not advice for your situation.
More real debates: Browse all examples
Get a second opinion on your next decision.
Ask your own AI to get answers from several models, with the disagreement shown. You decide what to do with it.
Ready to try it? Create an account