@demystify/gateway-moat
v0.6.0
Published
dmstfy-gateway moat layer: multi-tenant AI gateway (tenancy, keys, limits, budgets, routing, queueing) on Hono
Downloads
554
Readme
@demystify/gateway-moat
Model routing, rate limiting, budgets and a usage ledger — as a library.
Serverless: import /core
import {
Router, ProviderHealthTracker, RateLimiter, BudgetService,
UsageService, KeysService, MemoryRepo, MemoryLimitStore,
MockBackend, InMemoryEventBus, SystemClock, DEFAULT_ROUTER_CONFIG,
} from "@demystify/gateway-moat/core";/core has no Hono, no ioredis, no pg. hono, @hono/node-server, ioredis and
pg are optionalDependencies used only by the service entry points, so a Vercel or
Lambda bundle that imports /core does not carry a Redis client it has no use for.
The package root re-exports createApp, which pulls the HTTP layer in — that is what
made an earlier version unusable on serverless. Import the subpath.
What it gives you
| Concern | Class |
|---|---|
| Alias chains + failover on 429/5xx/timeout | Router |
| Circuit breaker with cooldown and probe | ProviderHealthTracker |
| Reservation-based rate limiting | RateLimiter |
| Reserve → settle spend ceilings | BudgetService |
| Append-only ledger, integer µUSD | UsageService |
| Per-tenant virtual keys (dmk_ + 32 hex) | KeysService |
| Exact + semantic response caching | SemanticCacheService |
Every one works with the in-memory adapters and needs no infrastructure:
MemoryRepo, MemoryLimitStore, MemoryQueueStore, MemorySemanticCache,
InMemoryEventBus, MockBackend.
Entry points
| Subpath | For |
|---|---|
| /core | serverless and libraries — pure, no service deps |
| . | everything, including createApp (drags in Hono) |
| /server | running the gateway as a service |
What it does NOT do
- It is not a hosted service. Nothing is deployed; you run what you need.
- The Postgres and Redis adapters are opt-in and live behind the optional deps.
- Money is integer micro-USD.
UsageService.recordrejects a non-integer cost rather than rounding it.
MIT.
