{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":924551,"defaultBranch":"main","name":"rabbitmq-server","ownerLogin":"rabbitmq","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2010-09-20T10:29:16.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/96669?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715244758.0","currentOid":""},"activityList":{"items":[{"before":"ef6a8ea80ca2728b821b95de455ee65499d3c081","after":"5123680a17d7858ae4a01d258d37f45e29cebdcc","ref":"refs/heads/qq-default-config-changes","pushedAt":"2024-05-09T13:24:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"kjnilsson","name":"Karl Nilsson","path":"/kjnilsson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180564?s=80&v=4"},"commit":{"message":"QQ: default to compressed mem tables and set a wal max entries default\n\nCompressed ETS tables may introduce a small throughput penalty (low single\ndigit %) but can reduce peak Ra memory use by 30-50%.\n\nAlso set a default wal_max_entries value to avoid mem tables growing\ntoo large when using very small message sizes (as more than 1M tiny\nmessages can easily fit into one WAL file).\n\nRa 2.10.1 has a type spec fix needed.","shortMessageHtmlLink":"QQ: default to compressed mem tables and set a wal max entries default"}},{"before":null,"after":"1431bbfafb4b4f4e88b0926312d716f7502bb7e7","ref":"refs/heads/otp27-support","pushedAt":"2024-05-09T08:52:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mkuratczyk","name":"Michal Kuratczyk","path":"/mkuratczyk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9566114?s=80&v=4"},"commit":{"message":"Ignore deprecation warnings","shortMessageHtmlLink":"Ignore deprecation warnings"}},{"before":"43938b9b44c41fea227c31c1c6fd09c07f44a009","after":null,"ref":"refs/heads/mergify/bp/v3.13.x/pr-11199","pushedAt":"2024-05-09T06:19:55.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"}},{"before":"43292a6d38d3be6c900dfde62db2c3b31d00f908","after":"dc7c51a7502c8143c257c44f14c202e50a5e7788","ref":"refs/heads/v3.13.x","pushedAt":"2024-05-09T06:19:54.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"},"commit":{"message":"Merge pull request #11200 from rabbitmq/mergify/bp/v3.13.x/pr-11199\n\nMake: move seshat dep definition to rabbitmq-components.mk (backport #11199)","shortMessageHtmlLink":"Merge pull request #11200 from rabbitmq/mergify/bp/v3.13.x/pr-11199"}},{"before":null,"after":"43938b9b44c41fea227c31c1c6fd09c07f44a009","ref":"refs/heads/mergify/bp/v3.13.x/pr-11199","pushedAt":"2024-05-09T06:19:16.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mergify[bot]","name":null,"path":"/apps/mergify","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/10562?s=80&v=4"},"commit":{"message":"Make: move seshat dep definition to rabbitmq-components.mk\n\n(cherry picked from commit 8cb86ca65daa6f71bfd13eae27575654dd165c99)","shortMessageHtmlLink":"Make: move seshat dep definition to rabbitmq-components.mk"}},{"before":"8cb86ca65daa6f71bfd13eae27575654dd165c99","after":null,"ref":"refs/heads/mk-move-seshat-dependency-to-rabbitmq-components","pushedAt":"2024-05-09T06:18:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"}},{"before":"aa6deb5faca5f388739fa15632c5b5299009636f","after":"078f4b3c4bd37a236e0f4e50efcaf2fc02875044","ref":"refs/heads/main","pushedAt":"2024-05-09T06:18:40.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"},"commit":{"message":"Merge pull request #11199 from rabbitmq/mk-move-seshat-dependency-to-rabbitmq-components\n\nMake: move seshat dep definition to rabbitmq-components.mk","shortMessageHtmlLink":"Merge pull request #11199 from rabbitmq/mk-move-seshat-dependency-to-…"}},{"before":null,"after":"8cb86ca65daa6f71bfd13eae27575654dd165c99","ref":"refs/heads/mk-move-seshat-dependency-to-rabbitmq-components","pushedAt":"2024-05-09T06:17:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"},"commit":{"message":"Make: move seshat dep definition to rabbitmq-components.mk","shortMessageHtmlLink":"Make: move seshat dep definition to rabbitmq-components.mk"}},{"before":"11a10c165b7a6f507543029b9b5d66fd573478d5","after":null,"ref":"refs/heads/mergify/bp/v3.13.x/pr-11197","pushedAt":"2024-05-09T05:24:47.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"}},{"before":"88be6b466de99964f5d943ee7d0e6a28a75b07bc","after":"43292a6d38d3be6c900dfde62db2c3b31d00f908","ref":"refs/heads/v3.13.x","pushedAt":"2024-05-09T05:24:46.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"},"commit":{"message":"Merge pull request #11198 from rabbitmq/mergify/bp/v3.13.x/pr-11197\n\n3.13: correctly format disabled plugins in 'rabbitmq-plugins list' (backport #11197)","shortMessageHtmlLink":"Merge pull request #11198 from rabbitmq/mergify/bp/v3.13.x/pr-11197"}},{"before":null,"after":"11a10c165b7a6f507543029b9b5d66fd573478d5","ref":"refs/heads/mergify/bp/v3.13.x/pr-11197","pushedAt":"2024-05-09T04:18:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mergify[bot]","name":null,"path":"/apps/mergify","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/10562?s=80&v=4"},"commit":{"message":"CLI: placate Dialyzer\n\n(cherry picked from commit a21a60958bd0c5de64be98093335dbd027362a9a)","shortMessageHtmlLink":"CLI: placate Dialyzer"}},{"before":"4f85d7ebf6d2d1887bfbe4a90c9cc5980601b52c","after":"aa6deb5faca5f388739fa15632c5b5299009636f","ref":"refs/heads/main","pushedAt":"2024-05-09T04:17:57.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"},"commit":{"message":"Merge pull request #11197 from rabbitmq/cloudamqp-disabled_plugins\n\n3.13: correctly format disabled plugins in 'rabbitmq-plugins list'","shortMessageHtmlLink":"Merge pull request #11197 from rabbitmq/cloudamqp-disabled_plugins"}},{"before":"a21a60958bd0c5de64be98093335dbd027362a9a","after":null,"ref":"refs/heads/cloudamqp-disabled_plugins","pushedAt":"2024-05-09T04:17:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"}},{"before":"4a3806bd18169791eef00ac2cdaab90ea80df582","after":"a21a60958bd0c5de64be98093335dbd027362a9a","ref":"refs/heads/cloudamqp-disabled_plugins","pushedAt":"2024-05-09T03:33:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"},"commit":{"message":"CLI: placate Dialyzer","shortMessageHtmlLink":"CLI: placate Dialyzer"}},{"before":null,"after":"4a3806bd18169791eef00ac2cdaab90ea80df582","ref":"refs/heads/cloudamqp-disabled_plugins","pushedAt":"2024-05-09T00:03:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"},"commit":{"message":"Makes PluginsFormatterTest pass","shortMessageHtmlLink":"Makes PluginsFormatterTest pass"}},{"before":"8ce0a208b3963662989442644a0224aaf1f15fcc","after":"88be6b466de99964f5d943ee7d0e6a28a75b07bc","ref":"refs/heads/v3.13.x","pushedAt":"2024-05-08T22:56:23.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"},"commit":{"message":"Merge pull request #11194 from rabbitmq/mergify/bp/v3.13.x/pr-11193\n\nBe more defensive when determining if a policy has CMQ keys (backport #11193)","shortMessageHtmlLink":"Merge pull request #11194 from rabbitmq/mergify/bp/v3.13.x/pr-11193"}},{"before":"ddfabc4917fa1a8c05bb209e8fa049f87c6c404b","after":null,"ref":"refs/heads/mergify/bp/v3.13.x/pr-11193","pushedAt":"2024-05-08T22:56:23.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"}},{"before":"1e47bb5eabbcfb012c6e30f9076c03ea9ee4070f","after":"cfad5d756a0a8725f8803d9474de4320089a4fa3","ref":"refs/heads/md/khepri/database-operations-in-minority","pushedAt":"2024-05-08T21:02:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"the-mikedavis","name":"Michael Davis","path":"/the-mikedavis","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/21230295?s=80&v=4"},"commit":{"message":"rabbit_db_vhost: Bubble up database errors in clear/0\n\nThis function is only used by a test suite which matches on the 'ok'\nreturn.","shortMessageHtmlLink":"rabbit_db_vhost: Bubble up database errors in clear/0"}},{"before":null,"after":"ddfabc4917fa1a8c05bb209e8fa049f87c6c404b","ref":"refs/heads/mergify/bp/v3.13.x/pr-11193","pushedAt":"2024-05-08T19:03:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"mergify[bot]","name":null,"path":"/apps/mergify","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/10562?s=80&v=4"},"commit":{"message":"A simpler does_policy_configure_cmq impl for maps\n\nSuggested by @the-mikedavis\n\nCo-authored-by: Michael Davis \n(cherry picked from commit 7a8d8736f64cd71b9e81ce888efe94ad54f2ee9d)","shortMessageHtmlLink":"A simpler does_policy_configure_cmq impl for maps"}},{"before":"7a8d8736f64cd71b9e81ce888efe94ad54f2ee9d","after":null,"ref":"refs/heads/mk-rabbitmq-server-discussion-11192","pushedAt":"2024-05-08T19:02:26.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"}},{"before":"a07484a83e19e40139ac2fa6779ef551cfc956f5","after":"4f85d7ebf6d2d1887bfbe4a90c9cc5980601b52c","ref":"refs/heads/main","pushedAt":"2024-05-08T19:02:25.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"},"commit":{"message":"Merge pull request #11193 from rabbitmq/mk-rabbitmq-server-discussion-11192\n\nBe more defensive when determining if a policy has CMQ keys","shortMessageHtmlLink":"Merge pull request #11193 from rabbitmq/mk-rabbitmq-server-discussion…"}},{"before":"b9e015ca0c8ffaefdd9f55aa41194a810e6a23b4","after":"7a8d8736f64cd71b9e81ce888efe94ad54f2ee9d","ref":"refs/heads/mk-rabbitmq-server-discussion-11192","pushedAt":"2024-05-08T15:44:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"},"commit":{"message":"A simpler does_policy_configure_cmq impl for maps\r\n\r\nSuggested by @the-mikedavis\n\nCo-authored-by: Michael Davis ","shortMessageHtmlLink":"A simpler does_policy_configure_cmq impl for maps"}},{"before":null,"after":"b9e015ca0c8ffaefdd9f55aa41194a810e6a23b4","ref":"refs/heads/mk-rabbitmq-server-discussion-11192","pushedAt":"2024-05-08T15:19:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"michaelklishin","name":"Michael Klishin","path":"/michaelklishin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1090?s=80&v=4"},"commit":{"message":"Be more defensive when determining if a policy has CMQ keys\n\nReferences #11192.","shortMessageHtmlLink":"Be more defensive when determining if a policy has CMQ keys"}},{"before":"2f65ab2302b9395ba46b9d9c9def67f9abbc88e3","after":"4a66358991c5f7f20e48b8f7093d66508413a595","ref":"refs/heads/make-ci","pushedAt":"2024-05-08T15:02:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pjk25","name":"Rin Kuryloski","path":"/pjk25","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/217064?s=80&v=4"},"commit":{"message":"Mixed versions on main branch should test against v3.13.x","shortMessageHtmlLink":"Mixed versions on main branch should test against v3.13.x"}},{"before":"899bb1019301ff4d9936847ae64130f36bff1e4d","after":"2f65ab2302b9395ba46b9d9c9def67f9abbc88e3","ref":"refs/heads/make-ci","pushedAt":"2024-05-08T13:19:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pjk25","name":"Rin Kuryloski","path":"/pjk25","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/217064?s=80&v=4"},"commit":{"message":"use v3.12.x for mixed versions","shortMessageHtmlLink":"use v3.12.x for mixed versions"}},{"before":"336ee27a6500f59572fd42b327be445a6612c7e9","after":"6be53b089b3505ea52dac12276bdb8718bfae724","ref":"refs/heads/qq-v4","pushedAt":"2024-05-08T13:10:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kjnilsson","name":"Karl Nilsson","path":"/kjnilsson","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1180564?s=80&v=4"},"commit":{"message":"QQ: Refactor to use the new ra_machine:handle_aux/5 API\n\nInstead of the old ra_machine:handle_aux/6 callback.","shortMessageHtmlLink":"QQ: Refactor to use the new ra_machine:handle_aux/5 API"}},{"before":"0ded9a7cd9b7e693e021876afa591c136e8e6b16","after":"899bb1019301ff4d9936847ae64130f36bff1e4d","ref":"refs/heads/make-ci","pushedAt":"2024-05-08T12:59:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pjk25","name":"Rin Kuryloski","path":"/pjk25","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/217064?s=80&v=4"},"commit":{"message":"Split test-make.yaml\n\nSince we apparently hit a workflow size limit","shortMessageHtmlLink":"Split test-make.yaml"}},{"before":"87394584ae3b0c375dabb42ecebb34029d36b348","after":"0ded9a7cd9b7e693e021876afa591c136e8e6b16","ref":"refs/heads/make-ci","pushedAt":"2024-05-08T11:47:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"pjk25","name":"Rin Kuryloski","path":"/pjk25","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/217064?s=80&v=4"},"commit":{"message":"try to add mixed version tests","shortMessageHtmlLink":"try to add mixed version tests"}},{"before":"9063f63e1ac029889fc5fbf152296221b42969af","after":"4e5bfa422b559f7f15463fe3c48c2550bc694a90","ref":"refs/heads/deaths-v2","pushedAt":"2024-05-08T11:03:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"ansd","name":"David Ansari","path":"/ansd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12648310?s=80&v=4"},"commit":{"message":"Make death_v2{} record extensible\n\nsimilar to how death{} record is extensible","shortMessageHtmlLink":"Make death_v2{} record extensible"}},{"before":"e9bb1efe805dbbae5c8ada314863587380beca18","after":"9063f63e1ac029889fc5fbf152296221b42969af","ref":"refs/heads/deaths-v2","pushedAt":"2024-05-08T09:34:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ansd","name":"David Ansari","path":"/ansd","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12648310?s=80&v=4"},"commit":{"message":"Fix dead lettering\n\n # What?\n\nThis commit fixes #11159, #11160, #11173.\n\n # How?\n\n ## Background\n\nRabbitMQ allows to dead letter messages for four different reasons, out\nof which three reasons cause messages to be dead lettered automatically\ninternally in the broker: (maxlen, expired, delivery_limit) and 1 reason\nis caused by an explicit client action (rejected).\n\nRabbitMQ also allows dead letter topologies. When a message is dead\nlettered, it is re-published to an exchange, and therefore zero to\nmultiple target queues. These target queues can in turn dead letter\nmessages. Hence it is possible to create a cycle of queues where\nmessages get dead lettered endlessly, which is what we want to avoid.\n\n ## Alternative approach\n\nOne approach to avoid such endless cycles is to use a similar concept of\nthe TTL field of the IPv4 datagram, or the hop limit field of an IPv6\ndatagram. These fields ensure that IP packets aren't cicrulating forever\nin the Internet. Each router decrements this counter. If this counter\nreaches 0, the sender will be notified and the message gets dropped.\n\nWe could use the same approach in RabbitMQ: Whenever a queue dead\nletters a message, a dead_letter_hop_limit field could be decremented.\nIf this field reaches 0, the message will be dropped.\nSuch a hop limit field could have a sensible default value, for example\n32. The sender of the message could override this value. Likewise, the\nclient rejecting a message could set a new value via the Modified\noutcome.\n\nSuch an approach has multiple advantages:\n1. No dead letter cycle detection per se needs to be performed within\n the broker which is a slight simplification to what we have today.\n2. Simpler dead letter topologies. One very common use case is that\n clients re-try sending the message after some time by consuming from\n a dead-letter queue and rejecting the message such that the message\n gets republished to the original queue. Instead of requiring explicit\n client actions, which increases complexity, a x-message-ttl argument\n could be set on the dead-letter queue to automatically retry after\n some time. This is a big simplification because it eliminates the\n need of various frameworks that retry, such as\n https://docs.spring.io/spring-cloud-stream/reference/rabbit/rabbit_overview/rabbitmq-retry.html\n3. No dead letter history information needs to be compressed because\n there is a clear limit on how often a message gets dead lettered.\n Therefore, the full history including timestamps of every dead letter\n event will be available to clients.\n\nDisadvantages:\n1. Breaks a lot of clients, even for 4.0.\n\n ## 3.12 approach\n\nInstead of decrementing a counter, the approach up to 3.12 has been to\ndrop the message if the message cycled automatically. A message cycled\nautomatically if no client expliclity rejected the message, i.e. the\nmesage got dead lettered due to maxlen, expired, or delivery_limit, but\nnot due to rejected.\n\nIn this approach, the broker must be able to detect such cycles\nreliably.\nReliably detecting dead letter cycles broke in 3.13 due to #11159 and #11160.\n\nTo reliably detect cycles, the broker must be able to obtain the exact\norder of dead letter events for a given message. In 3.13.0 - 3.13.2, the\norder cannot exactly be determined because wall clock time is used to\nrecord the death time.\n\nThis commit uses the same approach as done in 3.12: a list ordered by\ndeath recency is used with the most recent death at the head of the\nlist.\n\nTo not grow this list endlessly (for example when a client rejects the\nsame message hundreds of times), this list should be compacted.\nThis commit, like 3.12, compacts by tuple `{Queue, Reason}`:\nIf this message got already dead lettered from this Queue for this\nReason, then only a counter is incremented and the element is moved to\nthe front of the list.\n\n ## Streams & AMQP 1.0 clients\n\nDead lettering from a stream doesn't make sense because:\n1. a client cannot reject a message from a stream since the stream must\n maintain the total order of events to be consumed by multiple clients.\n2. TTL is implemented by Stream retention where only old Stream segments\n are automatically deleted (or archived in the future).\n3. same applies to maxlen\n\nAlthough messages cannot be dead lettered **from** a stream, messages can be dead lettered\n**into** a stream. This commit provides clients consuming from a stream the death history: #11173\n\nAdditionally, this commit provides AMQP 1.0 clients the death history via\nmessage annotation `x-opt-deaths` which contains the same information as\nAMQP 0.9.1 header `x-death`.\n\nBoth, storing the death history in a stream and providing death history\nto an AMQP 1.0 client, use the same encoding: a message annoation\n`x-opt-deaths` that contains an array of maps ordered by death recency.\nThe information encoded is the same as in the AMQP 0.9.1 x-death header.\n\nInstead of providing an array of maps, a better approach could be to use\nan array of a custom AMQP death type, such as:\n```xml\n\n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n```\n\nHowever, encoding and decoding custom AMQP types that are nested within\narrays which in turn are nested within the message annotation map can be\ndifficult for clients and the broker. Also, each client will need to\nknow the custom AMQP type. For now, therefore we use an array of maps.\n\n ## Feature flag\nThe new way to record death information is done via mc annotation\n`deaths_v2`.\nBecause old nodes do not know this new annotation, recording death\ninformation via mc annotation `deaths_v2` is hidden behind a new feature\nflag `message_containers_deaths_v2`.\n\nIf this feature flag is disabled, a message will continue to use the\n3.13.0 - 3.13.2 way to record death information in mc annotation\n`deaths`, or even the older way within `x-death` header directly if\nfeature flag message_containers is also disabled.\n\nOnly if feature flag `message_containers_deaths_v2` is enabled and this\nmessage hasn't been dead lettered before, will the new mc annotation\n`deaths_v2` be used.","shortMessageHtmlLink":"Fix dead lettering"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAERaTRxQA","startCursor":null,"endCursor":null}},"title":"Activity · rabbitmq/rabbitmq-server"}