Skip to content
FluxMeter
中文
← Blog

2026-07-11 · 6 min read

Complementary export: Metronome, Orb, and hierarchy reserve

Invoice platforms win at contracts, rating, and money movement. They systematically under-invest in pre-flight hard deny and mid-stream kill for agent loops. FluxMeter v2.8.0 closes Phase 4 by leaning into that split: we enforce on the hot path; Metronome, Orb, and Stripe remain the invoice system of record.

First-class partner exporters

Enable targets with BILLING_EXPORT_TARGETS=stripe,metronome,orb (default: stripe). The shared exporter in api/billing_export.py sends idempotent deltas, with hardened Stripe retries.

Link a customer once with POST /admin/billing/{id}/link and platform set to stripe, metronome, or orb. Partner recipes live under docs/integrations/stripe.md, metronome.md, and orb.md in the engine repo — including env vars and mapping notes.

Interop mappings for external export schemas are documented in spec/schema/external-export-mappings.md so you are not guessing field names.

Hierarchy reserve-confirm

v2.7 shipped hard caps via POST /budget/{id}/cap and check?parent_span_id=. v2.8 adds the missing hold: POST /budget/{id}/reserve?parent_span_id= atomically reserves against both the customer wallet and the span cap pool.

Python SDK 1.5.0 mirrors this with reserve(parent_span_id=) and reconcile(parent_span_id=), so streaming and multi-step agent runs can hold hierarchy budget the same way they hold customer balance.

Per-key budgets and metadata dims

Resellers often need a budget per issued API key, not only per customer wallet. POST /admin/customers/{id}/apikeys/{key_id}/budget sets that limit; /check enforces it when the request authenticates with that key.

For product analytics without a warehouse, pass metadata on /ingest (whitelist keys with FLUXMETER_USAGE_DIMS) and query GET /usage/dim/{key}/{value}?period=YYYY-MM for feature or workflow slices.

Try it locally

Run make demo, link a test customer with /admin/billing/{id}/link, exercise reserve?parent_span_id=, and curl /usage/dim after ingesting events with metadata. Full partner recipes and API details are in the engine repository docs.