4
SECTION 4 · CONCRETE EXAMPLES — BIGQUERY, DYNAMODB, PUB/SUB, S3
FOR EACH HYPERSCALER SERVICE — THE NEUTRAL INTERFACE AND THE ADAPTER
◆ BIGQUERY → DataWarehouse INTERFACE
Specific lock-in: extended SQL (ARRAY_AGG, STRUCT, UNNEST), partition/clustering, JavaScript UDFs, built-in ML.PREDICT.
Neutral interface: DataWarehouse.query(sql: str) → DataFrame — standard SQL only, no proprietary extensions.
Open source alternative: DuckDB (in-process analytics, same performance on small volumes), PostgreSQL + TimescaleDB (time series), ClickHouse (open source columnar analytics).
Bridge tool: Ibis — same Python API on BigQuery, DuckDB, Snowflake, PostgreSQL.
◆ DYNAMODB → KeyValueStore INTERFACE
Specific lock-in: GSI/LSI model (global/local secondary indexes), proprietary condition expressions (attribute_exists, begins_with), DynamoDB Streams.
Neutral interface: KeyValueStore.get(key) / put(key, value) / query(pk, sk_prefix).
Open source alternative: ScyllaDB (DynamoDB API compatible), Cassandra, Redis with modules.
Translation facade: dynamo-cassandra-proxy (Apache) — DynamoDB API as facade, Cassandra as backend. Zero application rewrite.
◆ PUB/SUB → MessageQueue INTERFACE
Specific lock-in: topic/subscription model, push/pull, acknowledgment deadline, ordering keys, dead letter topics.
Neutral interface: MessageQueue.publish(topic, message) / subscribe(topic, handler).
Open source alternative: Apache Kafka, RabbitMQ, NATS. Standard: CloudEvents (CNCF) for message format.
Key tool: CloudEvents + one adapter per broker. Message format is neutral — only transport changes.
◆ S3 → THE SUCCESS MODEL TO DUPLICATE
S3 is the only hyperscaler service whose API has become a de facto standard. MinIO, Ceph, Cloudflare R2, Backblaze B2 all implement the S3 API. The application speaks S3 and can run on any compatible backend. This is the model to replicate for other services. The lesson: standardise the API, not the service. The Sovereign Interface for S3 already exists — and it has freed thousands of organisations from object storage lock-in.