PATTERN Cited by 1 source
Decider Pattern (Workflow Routing)¶
Definition¶
A Decider Pattern inserts a routing step into a workflow orchestrator that consults a dynamic control-plane registry to determine which implementation (connector, service, version) should handle a given unit of work. The registry is updatable without modifying any downstream workflow, enabling instant upgrades and rollbacks per-job.
Canonical example¶
Netflix's Cassandra-to-Iceberg data-movement migration (Source: sources/2026-06-19-netflix-the-evolution-of-cassandra-data-movement-at-netflix):
- User defines a data-movement job via Data Bridge — definition unchanged.
- Maestro workflow executes a Decider step.
- Decider invokes Connector Controller with job attributes (source cluster, table, destination, migration cohort).
- Controller returns the appropriate connector: Casspactor (legacy) or Move Data (new).
- On Move Data failure → workflow immediately executes Casspactor fallback.
Key properties¶
- Zero user impact — job definitions and output contracts are unchanged.
- Per-job granularity — routing decisions can be scoped to cohorts, individual tables, or clusters.
- Instant rollback — update registry config, not code.
- Safety net — combined with patterns/fallback-on-new-connector-failure to guarantee completion even during new-connector teething.
Relationship to other patterns¶
- Generalises concepts/control-plane-data-plane-separation to the workflow/migration domain.
- Complements patterns/shadow-mode-parallel-validation (Decider routes production; shadow validates in parallel).
- Enables patterns/like-for-like-migration-contract by keeping the external interface constant.
Seen in¶
- sources/2026-06-19-netflix-the-evolution-of-cassandra-data-movement-at-netflix — canonical implementation via Maestro + Connector Controller for Cassandra data movement.