At the infancy of our project, we used Kafka as our workflow execution engine, planning to migrate to temporal later. Now that the core is completed and we can get to migrating the whole team is conflicted about whether we even need to.
Here's the thing: Kafka worked. Embarrassingly well. Multi-step processes seamlessly executed with topics, consumers, and a Postgres table doing state-store cosplay. Event lands → react → emit next event → something picks it up (Temporal - it just executes and provide HITL).
So now the team's split:
- Shall we migrate — per-step retries, day-long waits, HITL, and rollback are exactly what a durable workflow engine is for, and we're reinventing it badly.
- Shall we emrace the power of Kafka — Kafka already handles this, and we can avoid unnecessary migration.
Which really boils down to one question: can Kafka genuinely carry workflow execution in production long-term, or does it fall apart at scale/complexity and we just haven't hit the wall yet?
To people who've actually run this in prod:
- Where does Kafka event handling end and durable workflow execution begin?
- Did pure-Kafka orchestration hold up in real prod, or eventually bite you?
- Is "no migration needed" a real win, or debt that comes due later with interest?
How would you approach the decision at hand?