Sayonora
Database infrastructure for the agentic era.
Warp
The Intelligent Database Gateway.
Accelerate, scale, secure, and observe Postgres, Oracle, MySQL, and SQL Server — in any cloud or on-prem.
Connect · Protect · Control · Accelerate · Observe
Oracle · MySQL · SQL Server · MongoDB · OpenSearch · DynamoDB · SQS · InfluxDB · GraphDB · PostgreSQL · gRPC · MCP
12 protocols. One execution pipeline.
One intelligent infrastructure layer for the database you already run.
Postgres, Oracle, MySQL, or SQL Server — same control point.
Why Warp?#
⚡ Go faster
Distributed caching and automatic rollups cut repeated database work and query latency, shared across every protocol that hits Warp.
↗ Scale further
Shard and intelligently route workloads without embedding database topology into applications.
◉ See every query
Monitor SQL, latency, errors, workload behavior, and resource consumption from one control point instead of each database's own tooling.
🛡 Protect the database
SQL firewall, QoS, admission control, and workload isolation before traffic ever reaches the database.
⇄ Connect anything
Twelve client protocols and application interfaces through one gateway — Postgres, Oracle, MySQL, SQL Server, MongoDB, and more.
🌐 Run anywhere
AWS, Azure, GCP, OCI, Kubernetes, or on-prem. Keep the database and infrastructure you already have.
Put an intelligent control point in front of your database.#
Connect, protect, control, accelerate, observe — the same five things, applied identically no matter which protocol the caller speaks or which database sits behind Warp. Different protocols. Same policies. See each one broken out in detail →
What is Warp?#
See how Warp works, stage by stage → — the detailed eight-stage pipeline behind this diagram.
Two ways to use Warp#
Keep the database you have
Oracle app → Warp → Oracle. MySQL app → Warp → MySQL. SQL Server app → Warp → SQL Server. Postgres app → Warp → Postgres. Add caching, sharding, monitoring, rollups, QoS, and a SQL firewall in front of the database you already run — no migration required.
Or modernize onto Postgres
Oracle, MySQL, or SQL Server app → Warp → Postgres. Protocol and dialect translation keep the application's existing client working unmodified while the backend becomes Postgres — pair with Ferry and Shim for a gradual, no-big-bang migration.
See each outcome broken out in detail →
Four ways teams put Warp to work#
Accelerate & scale in place
Distributed caching, automatic rollups, and shard routing in front of Postgres, Oracle, MySQL, or SQL Server — without embedding database topology into applications.
Build a database control point
Firewall, QoS, routing, pooling, and failover in one admin surface — instead of each database's own tooling, run indefinitely, not just during a migration.
Modernize onto Postgres
Move Oracle, MySQL, SQL Server, or MongoDB applications onto Postgres without an immediate client rewrite — every protocol keeps working exactly as it always has.
Govern AI access
MCP and AI agents enter through the exact same firewall, QoS, and audit path as every other client — not a separate, unguarded route to your data.
Explore all Warp capabilities →
Three products, two ways to use them#
Use Warp on its own to run the database you already have better, or bring in Ferry and Shim alongside it when you're ready to modernize onto Postgres.
Warp — run better
Your universal database infrastructure layer: cache, scale, monitor, secure, route, and roll up. Works with Postgres, Oracle, MySQL, and SQL Server. See Warp →
Ferry — move better
Assess → Size → Migrate → Validate → Cut over. Scores how hard your Oracle, MySQL, or SQL Server migration to Postgres will really be, before you commit to it. See Ferry →
Shim — change less
Brings familiar Oracle, SQL Server, and MySQL catalogs, functions, and behaviors into Postgres, reducing the application changes a migration otherwise requires. See Shim →
Together: Ferry moves the data, Shim reduces the SQL and application changes, and Warp keeps existing clients and protocols working — all landing on the same Postgres.
Deploy anywhere#
Docker · Kubernetes · AWS · Azure · GCP · OCI · On-prem
Run Warp next to the applications and databases you already operate — no managed control plane required.
See it happen#
Pick a protocol — same demo, different client, same PostgreSQL on the other end.
$ sql app/password@//localhost:11521/postgres
SQLcl: Release 23.4 Production
SQL> SELECT * FROM orders;
ORDER_ID CUSTOMER_ID AMOUNT
-------- ----------- -------
1001 42 129.99
1002 57 89.50
2 rows selected.
SQL>
$ mysql -h 127.0.0.1 -P 13306 -u root -p mysql> SELECT * FROM orders; +----------+-------------+--------+ | order_id | customer_id | amount | +----------+-------------+--------+ | 1001 | 42 | 129.99 | | 1002 | 57 | 89.50 | +----------+-------------+--------+ 2 rows in set mysql>
$ mongosh mongodb://localhost:27017
test> db.orders.find()
[
{ _id: 1001, customer_id: 42, amount: 129.99 },
{ _id: 1002, customer_id: 57, amount: 89.50 }
]
test>
$ curl -s localhost:9200/orders/_search
{
"hits": {
"total": { "value": 2 },
"hits": [
{ "_source": { "order_id": 1001, "amount": 129.99 } },
{ "_source": { "order_id": 1002, "amount": 89.50 } }
]
}
}
Real client. Real wire protocol. PostgreSQL database. No client rewrite. Table/document contents above are illustrative — the protocol and path are exactly real. (SQLcl, JDBC, and psql are what's most thoroughly verified today; see Warp capabilities for exact client-by-client coverage.)
Try Warp in 60 seconds#
What do you use? Point it at a Postgres you already have:
1. Start Warp
docker run -p 15432:15432 \
-e WARP_HOST=<host> -e WARP_PASSWORD=<password> \
ghcr.io/polygres26/warp:latest2. Connect
psql -h localhost -p 15432 -U postgres3. Done — your client → Warp → PostgreSQL. No rewrite.
1. Start Warp
docker run -p 11521:11521 \
-e WARP_HOST=<host> -e WARP_PASSWORD=<password> \
ghcr.io/polygres26/warp:latest2. Connect
sql app/password@//localhost:11521/postgres3. Done — Oracle client → OraWire → Warp → PostgreSQL. No driver change.
1. Start Warp
docker run -p 13306:13306 \
-e WARP_HOST=<host> -e WARP_PASSWORD=<password> \
ghcr.io/polygres26/warp:latest2. Connect
mysql -h 127.0.0.1 -P 13306 -u root -p3. Done — mysql CLI → MyWire → Warp → PostgreSQL. No driver change.
1. Start Warp
docker run -p 27017:27017 \
-e WARP_HOST=<host> -e WARP_PASSWORD=<password> \
ghcr.io/polygres26/warp:latest2. Connect
mongosh mongodb://localhost:270173. Done — mongosh → MongoWire → Warp → PostgreSQL. No driver change.
1. Start Warp
docker run -p 9200:9200 \
-e WARP_HOST=<host> -e WARP_PASSWORD=<password> \
ghcr.io/polygres26/warp:latest2. Connect
curl -s localhost:9200/_search3. Done — REST client → OSWire → Warp → PostgreSQL. No driver change.
See every protocol at once (SQL Server, DynamoDB, SQS included) →
docker run \
-p 19090:19090 -p 15432:15432 -p 13306:13306 -p 11521:11521 \
-p 14333:14333 -p 27017:27017 -p 18000:18000 -p 9324:9324 \
-e WARP_HOST=<host> \
-e WARP_PASSWORD=<password> \
ghcr.io/polygres26/warp:latest
psql -h localhost -p 15432 -U postgres # Postgres wire
mysql -h 127.0.0.1 -P 13306 -u root -p # MySQL wire
sqlcmd -S localhost,14333 -U sa -P '<password>' # SQL Server wire
sql app/password@//localhost:11521/postgres # Oracle wire (SQLcl)
mongosh mongodb://localhost:27017 # MongoDB wire
curl -s localhost:9200/_search # OpenSearch wire
aws dynamodb scan --table-name orders \ # DynamoDB wire
--endpoint-url http://localhost:18000
aws sqs receive-message \ # SQS wire
--queue-url http://localhost:9324/queue/orders \
--endpoint-url http://localhost:9324
That works as-is against an existing on-prem Postgres. For a specific managed provider instead — Supabase, Amazon RDS, Google Cloud SQL, Azure Database for PostgreSQL, or Oracle Cloud Infrastructure's Database with PostgreSQL — see CONNECTING.md.
Different protocols. Same security policy.#
Oracle application? Same policy. MySQL application? Same policy. MCP agent? Same policy. Security follows the request, not the protocol.
SQL Firewall · ACL · Authentication · RLS · TLS · Secrets · Audit
Full, honestly-scoped security detail →
Stop one workload from taking down Postgres.#
QoS for Postgres, at the gateway. Prioritize, throttle, bound concurrency, and shed load — before Postgres saturates, not after it falls over. A real token-bucket admission controller, per workload class (query/write/ddl/txn). See Security for the full scope.
Cache once. Access across protocols.#
A result cached through one Warp protocol can be served through another — across Warp instances — without another Postgres round trip. One distributed cache, not a per-protocol silo. Confirmed live: a row read via a Postgres client, then asked for again through a MySQL client, comes back as a cache hit — zero Postgres round trips on the second read.
Cross-Protocol · Distributed · Automatically Invalidated · No Application Cache Code
Explore Warp in depth — detailed architecture, comparison →
Built for enterprise Postgres#
Without Warp vs. with it#
Without Warp
- Different database infrastructure per protocol
- A separate connection proxy
- Different security controls per system
- Different observability per system
- Separate migration tooling
- A separate, unguarded AI access path
With Warp
One gateway → the database you already run, or Postgres.
- Fewer systems to operate — one gateway instead of five databases' own tooling.
- One place to govern workloads — the same firewall, QoS, and audit path for every protocol.
- Standardize on Postgres, or keep your current engine — without rewriting every application first, either way.
Warp vs. alternatives#
| Capability | Direct to Postgres | Traditional proxy | Warp |
|---|---|---|---|
| Postgres wire protocol | ✓ | ✓ | ✓ |
| Foreign DB protocols (Oracle, MySQL, SQL Server, MongoDB…) | — | — | ✓ |
| Live dialect / semantic translation | — | — | ✓, every call |
| SQL firewall | DB-side only | Some | ✓ |
| Workload QoS / admission control | DB-side only | Limited | ✓ |
| Intelligent routing | App/DB-side | Some | ✓ |
| Sharding | App/DB-side | Some | ✓ |
| Cross-protocol distributed caching | Separate system | — | ✓ |
| AI / MCP access, same governed path | Separate path | — | ✓ |
| Unified observability | Multiple layers | Proxy layer only | ✓ |
Compatibility, honestly scoped#
Every row below is verified against that protocol's real client library, not a synthetic harness — this table states only what's actually confirmed today.
See the full per-protocol compatibility table →
| Protocol | Client tested against | Bound parameters decoded | Native error translation | RLS identity |
|---|---|---|---|---|
| PostgreSQL | psycopg2 | ✓ | ✓ (native SQLSTATE) | ✓ |
| Oracle | python-oracledb, SQLcl, JDBC | ✓ | ✓ (ORA-NNNNN) | ✓ |
| SQL Server | python-tds / pymssql, JDBC | ✓ | ✓ | ✓ |
| MySQL | MySQL CLI, JDBC | ✓ | ✓ (errno) | — |
| MongoDB | mongodb-driver-sync, mongosh | Hash by _id | ✓ (code/codeName) | — |
| DynamoDB | AWS SDK v2 | Hash by partition key | ✓ (AWS exception names) | — |
| Amazon SQS | boto3 | Hash by queue name | ✓ (AWS error codes) | — |
| OpenSearch | opensearch-py | Hash by doc_id | ✓ (error.type/reason) | — |
"—" means not yet implemented for that protocol, stated plainly rather than omitted — see Security for exactly which protocols propagate a real per-caller identity today, and full capabilities / ERRORS.md for the complete per-protocol detail including known limitations.
Built for production#
- HA & FailoverMulti-AZ Warp deployment, planned drain/switchover and automatic unplanned failover, both tested across every wire protocol. See Multi-AZ deployment and Planned and unplanned outages.
- SecuritySQL firewall, connection ACL, authentication, TLS, row-level security identity propagation, Vault/CyberArk secrets, admin SSO. See Security for the exact, honestly-scoped detail.
- Workload protectionQoS admission control, connection pooling, and load shedding before a backend saturates — see "Stop one workload from taking down Postgres" above.
- ObservabilityPrometheus
/metricsand OTLP export, reaching Grafana, Datadog, New Relic, CloudWatch, Azure Monitor, and GCP Cloud Monitoring. See Observability. - DeploymentDocker, Kubernetes, AWS, Azure, GCP, OCI, or on-prem — your infrastructure, your network, your database.
- SupportCommunity support on Developer; enterprise support on Enterprise — see Pricing below.
Also from Sayonora
Ferry
Know before you migrate. Then move for real.
Assess
Understand migration difficulty.
Size
Plan the target Postgres environment.
Migrate
Massively parallel snapshot + CDC.
Run
Warp keeps applications connected and governed.
Pricing
Same Warp, same protocols, same capabilities — Developer and Enterprise differ on scale and commercial rights, not features. Nothing that makes Warp what it is — SQL translation, the firewall, sharding, QoS, caching, HA/failover — is held back for a paid tier: an evaluation on Developer proves the exact architecture you'd run in production.
| Product | Developer | Enterprise starting price | Pricing metric |
|---|---|---|---|
| Warp | Free | $15,000/year | per production deployment/cluster |
| Ferry | Free | $7,500/year | per migration environment |
| Shim | Free / Basic | $5,000/year | per production deployment |
| Sayonora Platform | Free (dev) | $20,000/year | bundle of all three |
| Enterprise Unlimited | — | Custom, ~$75,000+ | company/business-unit agreement |
Sayonora Platform bundles Warp, Ferry, and Shim under one license at a discount to buying all three separately. Enterprise Unlimited is a company- or business-unit-wide agreement — unlimited deployments and migration environments across every product, negotiated directly. Starting prices above are exactly that — a starting point for the smallest real production footprint each product is sold against; talk to us for a quote on yours. Schedule a Warp Architecture Review →
Developer
$0 / forever
For evaluation, development, demos, and migration testing.
- All twelve protocols — Postgres, MySQL, Oracle, SQL Server, MongoDB, DynamoDB, SQS, OpenSearch, InfluxDB, GraphDB, gRPC, MCP
- SQL translation, dialect rewrite, and rollup acceleration
- SQL firewall, connection ACL, and every policy engine
- Routing and sharding, all strategies
- QoS admission control
- Query result caching (Mach)
- Prometheus
/metricsand OTEL export - HA, config propagation, and planned/unplanned failover — up to 3 instances
- Up to 25 concurrent client connections per instance
- Up to 3 Postgres backends
- Community support only
- Not licensed for commercial production use
Enterprise
$15,000 / year, starting
Simple infrastructure pricing. Per production deployment/cluster — no per-protocol fees, no per-database fees. For production deployments of any size.
- Everything in Developer, unrestricted
- Unlimited concurrent client connections
- Unlimited Warp instances
- Unlimited Postgres backends
- Full throughput, no admission-control ceiling beyond what you configure
- Licensed for commercial production use
- Enterprise support
Developer's connection/instance/backend limits are real, locally-enforced caps — not a time-limited trial and not a phone-home metering service. They're enough to run applications, demos, benchmarks, and a genuine three-instance HA/failover test; a meaningful production deployment will reach them quickly by design.
Ferry#
Assessment — connect, score, size, browse, report — is unrestricted on every tier. What's
paid is the parts of actually moving the data that scale past a single-process,
single-migration setup: real parallelism, unattended cutover, and multi-tenant capacity.
Same WARP_LICENSE_KEY as Warp — one key, one thing to buy.
Developer
$0 / forever
For evaluation, a real migration test, and one-migration-at-a-time production use.
- Full assessment: compatibility analysis, feature inventory, Postgres sizing
- Real data migration — snapshot + live CDC, every source connector
- Automatic resume/checkpointing, data validation, progress monitoring
- Encryption at rest, Vault/CyberArk secrets — opt-in, unrestricted
- Source protection — a fixed default throughput cap, always on
- Serial migration — one partition/table read at a time
- One migration job running at a time
- A failed row stops the run — no retry or dead-letter queue
- No packaged cutover-readiness verdict or automatic cutover
- Single shared admin account — no RBAC, audit log, or SSO
- Community support
Enterprise
$7,500 / year, starting
Per migration environment. For production migrations run at real scale.
- Everything in Developer, unrestricted
- Parallel snapshot/partition workers, single process
- A distributed worker fleet — real, multi-process parallelism
- Failed-row retry with dead-letter queue
- Cutover-readiness verdict, plus automatic cutover the instant it's ready
- Configurable throughput cap, tuned to your source, not just the default
- Unlimited concurrent migrations
- Audit log, a second read-only account, SSO bearer-token login
- Enterprise support
Full row-by-row capability breakdown, including exactly which real license check backs each row: Ferry capability table →
Shim#
Oracle/SQL Server/MySQL catalog and built-in-function compatibility inside Postgres
itself — V$SESSION, DBMS_OUTPUT.PUT_LINE, sys.objects,
GROUP_CONCAT — is what the Enterprise tier below unlocks. The same
WARP_LICENSE_KEY that unlocks it also unlocks Warp and Sayonora
DMS's own Enterprise tiers.
Free / Basic
$0
A session still connects and runs ordinary SQL normally.
- No unqualified
V$/DBA_*/DBMS_*resolution - No unqualified
sys.*/T-SQL function resolution - No unqualified MySQL built-in function resolution
Enterprise
$5,000 / year, starting
Per production deployment. For a migrated application that still calls vendor catalog objects or built-ins.
- Oracle: V$/GV$ views, DBA_*/USER_*/ALL_* views, 13 DBMS_*/UTL_* packages
- MySQL: GROUP_CONCAT, DATE_FORMAT, SHOW COLUMNS/INDEX/VARIABLES, and more
- SQL Server: sys.* catalog views, OBJECT_ID, SCOPE_IDENTITY, and more T-SQL functions
- Enterprise support
Full per-engine compatibility tables: Shim →
Common questions
- Does my application need to change to use Warp?No — your existing driver connects exactly as it always has, unaware Warp is on the other end. Learn more →
- Is Warp's sharding real, or just SQL text matching?Real — it decodes each protocol's own native bound values and merges cross-shard results centrally. Learn more →
- Does Warp support row-level security?Yes, for Postgres, SQL Server, and Oracle — a real per-caller identity feeds your own Postgres RLS policies. MySQL and the DynamoDB/MongoDB/SQS/OpenSearch wire protocols don't propagate identity into RLS yet. Learn more →
- What happens if the backend Postgres needs planned maintenance?A drain API redirects traffic and waits for a real zero-replication-lag cutover before confirming. Learn more →
- Can Warp connect to Supabase, RDS, Cloud SQL, Azure, or OCI?Yes — each has a worked example and its real provider-specific gotchas. Learn more →
- Does Warp cache query results?Yes — two tiers, both shared, neither a per-protocol silo. Arbitrary opted-in
SELECTresults: PostgreSQL, MySQL, Oracle, SQL Server, gRPC, and MCP all read the same cache. Exact primary-key point lookups (GetItem,findby_id, SQLWHERE pk = ?): DynamoDB and MongoDB each share that entry with any SQL client reading the same physical table too — see the demo above. Invalidation is automatic in both tiers. Learn more → - Does Warp use AI for anything beyond MCP?Yes — ten features where Warp itself calls an LLM at a specific pipeline point: self-healing query repair on a real backend SQL error, natural-language firewall-rule drafting, traffic anomaly detection with plain-English narration, QoS tuning suggestions, MCP activity summarization, natural-language querying with a second LLM pass judging (and correcting) the drafted SQL, rollup pre-aggregation suggestions, table-sharding suggestions, EXPLAIN plan narration, and auto-generated schema documentation. Every one keeps the same split: a deterministic decision stays deterministic, the LLM only phrases, drafts, or judges, and nothing it produces is ever applied or executed without a check. See all ten →
- What security features does Warp actually have wired in?SQL firewall, connection ACL, QoS, authentication, TLS, secrets management, and admin auth — each scoped honestly. Learn more →
- Is Warp free to use?Yes — Developer is free forever with every protocol and feature enabled, capped on scale. See Pricing above.
- Is Ferry's migration score generated by an LLM?No — it's rules-based and reproducible: the same database gives the same score every time.
Contact
Considering Warp for production? Bring your architecture — we'll help map where Warp fits. Pick "Architecture Review" below.
Report an issue or ask a question — for either Warp or Ferry. Include what you were trying to do and, for a bug, what you expected vs. what happened. Goes straight to the team, no email address to copy or scrape.