Once document expirations in DCP are utilising the specific DCP Expire (0x59) opcode rather than the DCP Delete (0x58) opcode, as per
MB-26907, Couchbase Server should replicate these expirations natively via XDCR to remote clusters.
That is to say the remote end of an XDCR relationship should receive a delete message which specifies the source of the delete was TTL. rather than the current Delete_with_Meta which has an implicit DeleteSource of "Expliticty deleted". If XDCR sends a Delete_with_Meta in response to receiving a DCP Expire, there is no way for the remote cluster to be able to replicate this its own DCP consumers as a document expiry, such as intra-cluster replication, Eventing, and onward XDCR.
To solve this issue, as now detailed in the docs for Delete_With_Meta, there now exists a new options flag named IS_EXPIRATION which can be used with a delete_with_meta op to denote that it instead refers to an expiration. This correctly sets the DeleteSource inside KV to be TTL instead of the default explicit. The optionality of this flag allows for users of delete_with_meta that haven't updated to support this to continue processing expirations as deletions. However, this does also mean utilising their feature breaks the expiry opcode output feature until they do support it.