Materialize no longer restricts clusters that contain sources or sinks to a single replica. You can now attach additional replicas to any cluster, regardless of the objects it hosts.
Why this matters
Prior to the change, clusters with sources or sinks were limited to a single replica. As such, these clusters could not take advantage of Materialize’s zero-downtime cluster reconfiguration process, which requires the use of multiple replicas. Specifically, zero-downtime cluster reconfiguration works by starting a new replica alongside the current ones, waiting for it to hydrate, and then retiring the old replica.
Now, with the limitation removed, you can:
- Resize or retune without interruption – spin up a differently-sized replica, wait for it to catch up, then drop the original.
- Roll out configuration changes safely – adjust
size
,availability
, or introspection settings replica-by-replica. - Increase fault tolerance – keep two or more replicas online for redundancy for various objects.
Changes to builtin source and sink statistics
To facilitate this change, we had to change the mz_source_statistics
,
mz_sink_statistics
, and related builtin collections to support multiple
replicas. We added a replica_id
column and the statistics are now reported
per replica that a given object is running on.