Transform
Turn captured changes into usable records.
Tapstate applies ordered, reviewable rules in the same data path. Filter, rename, enrich, or expand records before Serve makes them available to downstream systems.
active
inactive
filtered outoutput 1
output 2
Captured Change
active
Transform Path
Output Records
output 1
output 2
Ordered Transforms
Each node works from the result of the one before it.
Transform nodes run in the order declared by the pipeline. Each output becomes the next node's input.
Input
active
inactive
Current Record
Output
record 1
record 2
Node order is part of the pipeline contract. Changing the order changes which record reaches the next node.
Input
active
inactive
user_id → id
spend → tier: premium
Current Record
tags[ ] → × 2 records
Output
record 1
record 2
Node order is part of the pipeline contract. Changing the order changes which record reaches the next node.
Reviewable Contract
The transform path stays visible in the resource.
Transforms are declared in order with the pipeline. Review the contract before deployment, then test it with representative records.
pipeline.tapstate.yml
transforms:
- name: active-only
filter: "record.status == 'active'"
- name: normalize-id
rename:
user_id: id
- name: add-tier
js: |
record.tier =
record.spend > 1000
? 'premium'
: 'standard';
return record;
- name: split-tags
unwind: tagsInput Record
Current State
Results
record 1
record 2
CEL filters are compiled and type-checked during validation. JavaScript behavior and deployment-specific limits still require representative testing.
Combine Related Records
Build one record from changes that arrive separately.
Match related records by key, then shape the combined result before it moves to Serve.
Customer
Account
Recent Order
Combined Record
from customer
from account
from recent order
Write or materialize the combined result.
Transform assembles and shapes the record. Serve owns writing or materializing the result.
Move the shaped record to Serve.
Transform defines the record that moves forward. Serve owns writing, materialization, and downstream access.