Reading RabbitMQ tutorials I stumbled upon this sentence:
delivery_mode: Marks a message as persistent (with a value of 2) or transient (any other value).
Why wasn't it made boolean if it has only two possible values? Did it have some other values previously?
In fact, AMQP 0.9.1 defines two values:
octet delivery-mode Non-persistent (1) or persistent (2).
RabbitMQ just interprets all values != 2 as equivalent to 1.
I do not know the historical reasons for choosing octet as the type.