I use RabbitMQ as a broker for celery and I observe that some messages get dropped. While investigating the problem by looking into the web management UI, I've seen that channels have a "mode" (confirm or transactional).
What does it mean if a channel is transactional?
I only know the term from database systems. There it means that either the complete transaction is done or nothing of it. A transaction bundles some operations together and guarantees that they happen completely or not at all.
I read the docs but it doesn't help me.
Specific questions
"Other operations such as resource creation/deletion are not transactional"
- How can resource creation/deletion not be transactional? How can something be half deleted / created?
"On the consuming side, the acknowledgements are transactional"
- How could an acknowledgement possibly be not transactional?