Canonical names
Every VPoint has a canonical lookup name of the form:entity is the operation itself; scope is its class/module grouping; pkg a functional grouping; org the top-level domain. Example: my-app/pricing/calculator/calculate-shipping.
You rarely write all four. When an explicit name contains /, its segments parse right-aligned, and unset components derive from your code’s package/class/function structure:
So the two-segment names used throughout these docs (
payment/charge) set scope/entity and inherit org/pkg from the code. Derivation examples:
Structs named via
@struct / @Struct follow the same right-aligned rules; CEL resolves a bare PricingResult { ... } literal by the last segment.
Stage routing targets
When inserting a stage, the target string tells the registry which VPoint to attach to:Suffix matching
vpoint_target matches registered canonical names by suffix on / boundaries:
calculate-shippingmatchesmy-app/pricing/calculator/calculate-shippingcalculator/calculate-shippingmatches it tooulate-shippingdoes not match (not on a boundary)
Name-component filters
After suffix matching,org= / pkg= / scope= / entity= filters narrow candidates by canonical-name components; all set filters must match (AND). Useful when the same entity name exists across packages.
Environment filters
Stages can be scoped to deployment environments. A stage with filters reaches only clients whose advertised environment matches:
Empty fields are wildcards — a stage without a
region filter reaches all regions. Clients advertise their environment via SDK options or VARIANZ_APPLICATION_NAME / VARIANZ_REGION / VARIANZ_CLUSTER (configuration).
