Routing policies

How a policy decides

One policy id carries three budgets, one fallback and an exception mode. Every route is checked against all of it before it runs.

Policy 01

support-summariesActive

Budgets 02

  • Quality floor ≥ 89/100 rubric
  • Latency ceiling ≤ 1.8 s p95 measured
  • Energy ceiling ≤ 60 Wh / 200 est.

Fallback 03

gannet-lnamed in advance

If no route qualifies 04

Report before execution, then run the fallback

  1. 01Policy idSent with every request. One id, one rule set.
  2. 02Three budgetsA route runs only when it clears all three.
  3. 03FallbackOne route, chosen by the team. Optional.
  4. 04Exception modeWhen nothing fits, you hear before anything runs.

What each budget blocks

On Dispatch-200 each budget closes one side of the route mix. The policy can only run in the window they leave open.

  1. Quality floor

    ≥ 89/100rubric

    Binds on hard tickets. Long threads and several issues in one ticket need Gannet-L. It blocks Gannet-S for them.

  2. Latency ceiling

    ≤ 1.8 s p95measured

    Binds on interactive work, where someone waits. It blocks the slower Gannet-L first. At 1.2 s it would block all 200.

  3. Energy ceiling

    ≤ 60 Wh / 200est.

    Binds on bulk batches. At 0.40 Wh est. per Gannet-L request, it caps Gannet-L at 100 of 200.

  4. All three

    40 to 100 on Gannet-L

    Budgeted lands at 50. 90/100, 1.4 s p95 and 50 Wh est., inside every edge.

Dispatch-200, 200 support ticket summaries. The energy edge follows from 0.20 and 0.40 Wh est. per request, accelerator energy only, facility overhead left out. The quality edge and the Gannet-S figures are sample values. Read the methodology

Change one rule, the route changes

Three example policies on the same Dispatch-200 tickets. Each one shows its rules, its route split and the outcome.

support-summaries

Budgeted

The benchmark policy. All three budgets set, with room left on each.

Budgeted policy rules and how many candidate routes clear each
Budget Limit Routes that clear
Quality floor ≥ 89/100 2 of 3
Latency ceiling ≤ 1.8 s p95 3 of 3
Energy ceiling ≤ 60 Wh est. 2 of 3

Fallbackgannet-lnot needed on this run

Route split on Dispatch-200

Benchmark run

150Gannet-S

50Gannet-L

  • All Gannet-Smisses

    87/100, under the floor

  • 150 and 50 mixclears

    Clears all three

  • All Gannet-Lmisses

    80 Wh est., over

Meets the policy

90/100, 1.4 s p95, 50 Wh est. Headroom: 1 point, 0.4 s and 10 Wh est.

Candidates are the three ways to run the batch: all Gannet-S, the 150 and 50 mix, all Gannet-L. Gannet-S alone figures are samples.

One fallback, chosen in advance

When no route qualifies, the exception comes first. Then the policy runs its named fallback, or hands the request back.

  1. No route qualifies

    Every candidate misses at least one budget.

  2. Exception reported

    Before execution, with each candidate and the budget it misses.

  3. Does the policy name a fallback?

    1. Yesfallback: gannet-l

      The fallback runs

      Marked as fallback, with its route, latency and energy estimate.

    2. Nofallback: none

      Back to the caller

      Unexecuted, so the team can relax a budget or hold the rollout.

  • One per policy

    A policy names at most one fallback route. There is no chain of fallbacks to trace.

  • Chosen before the run

    The team picks it when writing the policy. The gateway never improvises one at run time.

  • Reported either way

    A fallback result counts against the policy and shows in the report, so the miss stays visible.

Policy in review

A policy every team can read

The file your gateway reads, line by line, beside the sentence the teams who pay and operate sign off.

support-summaries.yaml

In plain words

1policy: support-summaries 2evidence: dispatch-200

Covers support ticket summaries. Its figures come from the Dispatch-200 test.

Everyone

3quality_floor: 89 # rubric, of 100

No route may score below 89 out of 100 on the fixed rubric.

Product

4latency_ceiling: 1.8s # p95, at the gateway

95 of every 100 requests finish within 1.8 seconds, measured at the gateway.

Operations

5energy_ceiling: 60Wh # per 200, est.

The batch stays under 60 Wh est. of accelerator energy. Facility overhead is not counted.

Finance

6routes: [gannet-s, gannet-l]

Only these two models are eligible. Nothing else is tried.

Platform

7fallback: gannet-l 8on_no_route: report_first

If nothing fits, the exception is reported before anything runs, then Gannet-L runs as the marked fallback.

Everyone

Sample policy file. Field names are illustrative.

Read the API integration
Soft rolling hills at first light, layers of mist in the valleys and a faint warm glow on the horizon

Put a budget on your next rollout

Bring one workload. We will run it under your policy and show you what each route delivers and consumes.