Skip to content
PALM SOUQ

Gateway sandbox

Trip a circuit breaker before it costs you anything.

Six tenants on four tiers, live meters, and every control the gateway has. Inject a loop, a surge or an outage and read the audit log as it writes.

gateway.palmsouqltd.com/sandbox14:02:00 UTC · t+0s
Scenarios
Requests
0
Tokens
0
Spend governed
$0.00
HTTP 429s
0
Breakers tripped
0
Projected spend avoided
$0
Added latency (avg)
0.00 ms

Tenants · month to date

Click a row to target it
TenantRouting toLLM spend vs budgetReqMarginStatus
Northwind Legalt_northwind · EnterpriseClaude Sonnet 4.5primary
$401.12 / $620.00 · 65%
0$1,999Healthy
Brightdesk Supportt_brightdesk · ProGPT-4.1primary
$104.37 / $160.00 · 65%
0$395Healthy
Quill Notest_quill · StarterGPT-4oprimary
$27.40 / $35.00 · 78%
0$52Healthy
Forge Code Agentst_forge · ProClaude Sonnet 4.5primary
$205.40 / $280.00 · 73%
0$594Healthy
Atlas Researcht_atlas · EnterpriseGemini 2.5 Proprimary
$288.05 / $520.00 · 55%
0$1,512Healthy
Pebble (free tier)t_pebble · FreeGemini 2.5 Flashprimary
$0.12 / $0.25 · 48%
0$-0Healthy

Markers at 80% (soft cap webhook) and 90% (model fallback). 100% is the hard cap. Margin is the tenant's plan revenue minus LLM spend so far this month.

Agent sessions under watch

0 running

No runaway sessions. Inject one from the control panel or run scenario 01.

Traffic generator

Tier limits per minute: Free 60 · Starter 150 · Pro 360 · Enterprise 1200

Inject an incident

Loop shape

Loop heuristics

Evaluated in path, per session
  • Cyclical tool thrashing15 identical tool calls
  • Token velocity surge> 50k tokens/s over 10 s
  • Semantic echo loop6 replies at >0.92 similarity
  • Max step / recursion depthdepth > 20

Request stream

0 rerouted
TimeStatusTenantModelTokensCost
Press Run traffic to start the six tenants.

Audit event log

Event payloadevt_00001
{
  "id": "evt_00001",
  "at": "2026-11-08T14:02:00Z",
  "type": "policy",
  "tenant": null,
  "gateway": "gateway.palmsouqltd.com",
  "policy_version": 42,
  "seed": 402026
}
seed 402026 · deterministic replay · same actions, same resultsspend avoided = loop burn rate x 45 min unattended

Four runs worth trying

Each scenario isolates one failure your users will eventually cause.

Every price in the sandbox comes from the same table as the LLM Price Index. Forge runs Claude Sonnet 4.5 at $3 per 1M input and $15 per 1M output tokens.

  1. 01

    Catch a tool loop

    Forge Code Agents starts calling git.resolve_merge on the same file with a 38k token context. The cyclical tool thrashing heuristic counts identical calls and returns HTTP 429 on call 15. The session cost about two dollars. The event payload shows the projected cost of 45 more unattended minutes.

  2. 02

    Run the same loop with the breaker off

    Disable tool thrashing and inject the same loop. Its velocity sits under the 50k tokens/s rule, so nothing in path stops it. Spend climbs through the 80% soft cap webhook and the 90% Haiku fallback. Only the hard cap ends it. That gap is what post-facto dashboards leave open.

  3. 03

    Hit a Starter tenant with a power user

    Quill Notes pays $79 a month. A surge sends 9x the traffic with 2.4x larger prompts. The Starter tier sliding window rejects the excess with 429 and Retry-After. Spend crosses 80% and your webhook fires. At 90% GPT-4o degrades to GPT-4o mini instead of locking the user out.

  4. 04

    Take a provider down

    Mark Anthropic as failing. Northwind and Forge requests reroute to GPT-4.1 on the next call with zero dropped requests. The request stream flags every rerouted call, and recovery is logged when health probes pass again.

What your code sees

The sandbox 429 is the production 429.

x-palmsouq-reason
Why the request stopped: circuit_breaker_triggered, rate_limited or hard_quota_exceeded.
x-palmsouq-heuristic
Which of the four loop rules fired, so on-call knows where to look.
retry: false
Breaker stops are not retried by the SDKs. Rate limits carry Retry-After instead.
Fail-open SDKs
If gateway.palmsouqltd.com is unreachable, the SDKs call the provider directly and backfill metering.
POST /v1/chat/completions
HTTP/1.1 429 Too Many Requests
content-type: application/json
x-palmsouq-tenant: t_forge
x-palmsouq-reason: circuit_breaker_triggered
x-palmsouq-heuristic: cyclical_tool_thrashing
x-palmsouq-session: ses_th4k2q1

{
  "error": {
    "type": "circuit_breaker_triggered",
    "message": "Session halted after 15 identical tool calls.",
    "tenant_id": "t_forge",
    "calls": 15,
    "cost_usd": 2.09,
    "retry": false
  }
}

About the sandbox

Is the sandbox running real model calls?

No provider is called. The sandbox runs the same policy logic the gateway applies (tier rate limits, budget thresholds, fallback routing and the four loop heuristics) against generated traffic, and prices every call with the list prices in the PALM SOUQ LLM Price Index. Your trial runs the same policies against your own traffic.

Why are the results identical every time I press Reset?

Traffic comes from a seeded pseudo-random generator and every control is an action applied to a reducer. The same seed and the same sequence of clicks produce the same requests, the same costs and the same audit log. That makes a scenario easy to share with a teammate.

How is the projected spend avoided calculated?

When a breaker trips, PALM SOUQ takes the loop's burn rate over its last second and multiplies it by 45 minutes of unattended running. For a 38k token Claude Sonnet 4.5 call repeating once per second that is about $0.14 per second, or roughly $370 over 45 minutes.

Can I tune the thresholds?

Yes. Every heuristic has a switch and a threshold slider here, and the same settings exist per tier and per tenant in production policies. Lower the velocity threshold to 20k tokens/s and the tool loop trips on velocity before it reaches 15 identical calls.

What happens to my users when a breaker trips?

Your application receives HTTP 429 with X-PalmSouq-Reason: circuit_breaker_triggered, and a breaker.tripped webhook goes to Slack or your endpoint. The SDKs raise a typed exception so you can show a message, retry with a smaller plan, or hand the task to a human.

Run these policies on your own traffic.

Point one base URL at the gateway, pass X-PalmSouq-Tenant, and the breakers, quotas and fallbacks you just tried apply to every request.

14-day free production trial · 100k requests included · no card required