Reliability starts before Kafka
A reliable consumer begins with a clear business state model. Define what may be repeated, what must be ordered and which transitions are irreversible before selecting acknowledgement or retry settings.
Idempotency should be visible in the domain and persistence model rather than hidden in infrastructure code.
Control acknowledgement deliberately
Manual acknowledgement is useful when processing includes multiple database or integration steps. Acknowledge only after the durable business outcome is complete, and make failure paths observable.
Retry policy should distinguish transient integration failures from invalid business messages.
Operate the workflow
Metrics, structured logs, correlation identifiers and replay procedures are part of the product. A design is incomplete until support teams can understand, recover and safely reprocess failures.