Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To handle this scenario gracefully, consumers should configure auto.offset.reset=latest when consuming from mirrored mirror topics. This ensures that if a committed offset is beyond the current LEO after failover, the consumer automatically resets to the latest available offset rather than failing or resetting to the earliest offset.

...

Kafka consumers with isolation.level=read_committed determine transaction visibility using only the Last Stable Offset (LSO), which is computed from COMMIT/ABORT control markers in the log. Consumers never interact with the transaction coordinator or validate producer IDs. This separation between log-level markers (replicated) and coordinator state (not replicated) is why transactional consumers work correctly on mirrored mirror topics without mirroring coordinator state. The LSO truncation during failover ensures all remaining transactions have mirrored markers, maintaining this guarantee.

...

  1. Stop MM2 replication
  2. Delete mirrored mirror topics on destination cluster, including MM2 internal topics
  3. Start fresh with Cluster Mirroring

...


MirrorMaker 2Cluster Mirroring

Offset Translation

Lossy, requires remapping, causes reprocessing overhead

None needed - offsets preserved exactly

Metadata Sync

Requires separate connector configuration (MirrorSourceConnector, MirrorCheckpointConnector)

Automatic (topics, configs, consumer groups, ACLs)

Transactional Topics

Markers copied as regular records, incomplete transactions possible during replication

Markers mirrored, LSO truncation ensures consistency before failover

Topic Write Protection

Not supported - mirrored (mirror topics always writable)

Read-only enforcement during mirroring, writable only after explicit failover

Tiered Storage

Fetches from broker (which reads from remote storage)

Not initially supported (future work)

Active-Active

Supported via topic prefixing and cycle detection

Not supported (read-only enforcement prevents cycles)

Share Groups

Not supported

Supported

Failback

Full re-mirror from offset 0

Delta sync using LastMirroredOffset

Topic Name Preservation

No - destination topics prefixed with source cluster alias (e.g., source.topic-name)

Yes - same topic name as source

Topic ID Preservation

No - destination gets new topic ID

Yes - same topic ID as source

...