Skip to content

Releases: axonops/zdm-proxy

AxonOps ZDM Proxy v2.4.1-axonops.2

04 Apr 03:47
6fb6722

Choose a tag to compare

Merge feature/per-table-write-metrics into main

AxonOps ZDM Proxy v2.4.1-axonops.1

03 Apr 10:38
4c78c3a

Choose a tag to compare

Based on ZDM Proxy v2.4.1 with the following additions:

New features

Target consistency level override

New config option ZDM_TARGET_CONSISTENCY_LEVEL (YAML: target_consistency_level) that overrides the consistency level for all requests forwarded to the target cluster. The origin cluster always receives the original client-requested consistency level.

This is useful during migration when the target cluster is being populated via dual writes. Using a weaker consistency level such as LOCAL_ONE on the target reduces the risk of write failures caused by target-side instability — node outages, streaming, or compaction pressure. Because the target data can be repaired after migration is complete, temporary under-replication is acceptable and preferable to failing writes that would otherwise succeed on origin.

Example: Application sends writes at LOCAL_QUORUM. Origin receives LOCAL_QUORUM. Target receives LOCAL_ONE.

  • Disabled by default — when unset, behaviour is identical to upstream
  • Valid values: ANY, ONE, TWO, THREE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM, LOCAL_ONE
  • Invalid values are rejected at startup
  • A WARN log is emitted when the override is active
  • Applies to all CQL request types: inline queries, prepared statement executions, and batch statements

Superuser startup warning

The proxy now checks at startup whether the configured origin and target users are Cassandra superusers. If so, a WARN log is emitted advising against this practice.

Superuser authentication in Cassandra requires QUORUM consistency internally, which increases the risk of authentication failures during node instability. Using a regular user with only the necessary permissions for the keyspaces being migrated is recommended.

The check is best-effort: it is silently skipped if authentication is not enabled, the system_auth.roles table is not accessible, or the platform does not support the query (e.g. DataStax Astra).

Compatibility

  • Fully backwards compatible with upstream ZDM Proxy v2.4.1
  • No configuration changes required to preserve existing behaviour
  • Both features are disabled/inactive by default