Data Platforms · developer infrastructure
Declarative Data Orchestration
Impact
Teams can express dependencies and parallel branches in one pipeline definition while pipelines without TaskSets retain the serial path they already use.
- Explicit task graph
- Serial compatibility
- Opt-in parallel work
01 · Problem & operating context
Independent maintenance was waiting behind a revision it did not depend on.
One Kafka-to-Unity streaming table had a serial revision chain: a sensor, checks, a revision write, and optimization. Its retention work, Delta-log cleanup, and vacuum tasks touched older data in a fixed window, so they could run independently, but the generic pipeline model forced all of them into one line.
A failed revision therefore held back unrelated maintenance. Splitting the work into separate DAGs would have added cross-DAG sensors and logical-date coordination, so the real need was to express the dependency graph inside one existing pipeline definition.
02 · My role & ownership
I added a compiler path rather than replacing the platform.
I implemented the TaskSets contract, client, and runtime compiler, including reference and cycle validation before Airflow dependencies are generated. The compiler can express explicit fan-out and fan-in while reusing the existing operator-building path.
The platform serves engineering teams through shared production workflows. That platform context is separate from personal ownership; my contribution is the opt-in graph path and its compatibility with existing serial workflows.
- Implemented
- TaskSets contract, client, and runtime compiler.
- Designed
- Reference/cycle validation with explicit parallel fan-in and fan-out.
- Scope limit
- Shared production workflows are team context, not a personal pipeline count.
Implemented the TaskSets contract, client, and runtime compiler.
Added reference/cycle validation and explicit fan-in/fan-out graph construction.
Introduced parallel execution as an opt-in path alongside existing serial workflows.
Shared production workflows across engineering teams describe the platform surface.
03 · System architecture
The compiler makes a graph before Airflow sees edges.
A TaskSets definition passes through the client to the runtime compiler. The compiler validates references and set-level cycles, builds a graph of serial or parallel stages, and only then wires the corresponding Airflow dependencies.
A pipeline that does not declare TaskSets still returns to the established serial path. That two-path behavior lets a team adopt the graph where it helps without altering a stable workflow that has no parallel requirement.
- Contract
- TaskSets client carries task references, dependencies, and execution intent.
- Compiler
- Runtime compiler validates references/cycles and constructs the dependency graph.
- Execution
- Airflow runs explicit fan-out/fan-in for opted-in TaskSets or preserves serial behavior.
04 · Decisions & trade-offs
Compatibility mattered more than a universal new model.
I chose an opt-in contract instead of converting every generic pipeline to a parallel abstraction. A team declares a TaskSet when its work has real branches or joins; otherwise, the runtime keeps the serial chain it already understands.
Validation happens before dependency wiring so an unknown reference or set-level cycle fails as a graph problem rather than a half-running DAG. The cost is maintaining two code paths and a richer contract, but it gives teams a gradual adoption path.
Introduce TaskSets as an opt-in parallel compiler path while preserving existing serial behavior.
Require every existing pipeline to migrate before it can use a parallel graph.
Teams can adopt fan-out and fan-in where useful without rewriting stable serial workflows.
The contract, validation, compiler, and two compatibility paths need ongoing maintenance.
05 · Failure modes & recovery
A bad graph should fail before it starts work.
The compiler rejects unresolved task references and set-level cycles before it generates Airflow dependencies. The workflow owner gets a bounded configuration problem to fix instead of discovering a broken relationship after tasks have started.
Once the definition is corrected, the compiler rebuilds only that graph. Existing serial pipelines remain on their established route, which keeps a TaskSets error from changing unrelated workflows.
- Failure signal
- A TaskSet has an unresolved task reference or a dependency cycle.
- Attribution
- The runtime compiler identifies the graph error before dependency generation.
- Response
- Reject the bounded contract, fix the graph, and compile it again.
- Authority
- The TaskSets contract and runtime compiler own graph validity.
- Recovery check
- The generated Airflow dependencies show the corrected fan-out or fan-in graph.
06 · Evidence & boundaries
Evidence & boundaries
- Verified result
- TaskSets validates graph references and cycles, then adds opt-in parallel execution without replacing serial workflows.
- Contribution scope
- I implemented the TaskSets contract, client, and runtime compiler, including reference/cycle validation and parallel fan-in/fan-out.
- Metrics not established by public material
- No public migration count, deployment-time reduction, or failure-rate delta is established.