direct_exchange_routing_v2 - This feature flag introduces a change in the routing implementation in direct exchanges that increases sender-side/client-to-queue throughput.
In previous versions, for every message that was routed through the direct exchange, a routing key match spec was performed against the routing table, which increased lookup time as the number of entries in the routing table increased. With this change, a new routing index table is introduced with an index that includes both source exchange and routing key, resulting in quicker routing and in turn much higher throughput.This change affects only direct exchanges, not default, topic or fanout exchanges. All protocols, except Stream protocol and queue types (classic, quorum and streams) would benefit from this change.
feature_flags_v2 - With the introduction of this flag, all v1 code path has been eliminated. With this, all new nodes can be joined to a cluster using the v2 feature flags. In version 3.12 of RabbitMQ, this feature_flag is required. So, to upgrade to 3.12, the cluster should be first upgraded to 3.11. Also, all code that handled upgrades from versions prior to 3.7 has been deleted.
The following two feature flags are changes in internal implementations of the tables.
listener_records_in_ets - A change that moves listener records from Mnesia tables to ETS
tracking_record_in_ets - A change that moves tracking records rom Mnesia tables to ETS