ExtendDB – The DynamoDB API, everywhere you run code

0xedb1 pts0 comments

ExtendDB — The DynamoDB API, everywhere you run code.

Skip to main content

Run DynamoDB workloads anywhere

An open source adapter that speaks the DynamoDB wire protocol and stores data in the backend you choose.

Same SDKs. Same code. Your infrastructure.

Get started on GitHub<br>View source

Maintained by<br>AWS

put_item.py

Cloud DynamoDB

import boto3

ddb = boto3.client(<br>'dynamodb',<br>region_name='us-east-1',

ddb.put_item(<br>TableName='Orders',<br>Item={'OrderId':<br>{'S': '1001'}},

ExtendDB, anywhere

import boto3

ddb = boto3.client(<br>'dynamodb',<br>region_name='us-east-1',<br>endpoint_url=<br>'http://localhost:8000',

ddb.put_item(<br>TableName='Orders',<br>Item={'OrderId':<br>{'S': '1001'}},

Why ExtendDB<br>One API, your infrastructure

Write once, run anywhere

The same code runs against ExtendDB and the DynamoDB service. Endpoint configuration is the only change.

Pluggable storage

PostgreSQL for the enterprise. Cassandra for scale. Community backends welcome.

Apache 2.0

Open source, open governance, explicit patent grant. Fork it, run it anywhere.

How it works<br>An adapter, not a database

ExtendDB architecture diagram<br>A DynamoDB client sends API requests to ExtendDB. ExtendDB translates each request and routes it to a pluggable storage backend such as Apache Cassandra, PostgreSQL, or other backends.

Your app<br>Any DynamoDB SDK

ExtendDB<br>API adapter

Cassandra<br>pluggable

PostgreSQL<br>reference backend

Other backends<br>pluggable

ExtendDB

reference backend

pluggable

A DynamoDB client sends API requests to ExtendDB. ExtendDB translates each request and routes it to a pluggable storage backend.

ExtendDB speaks the DynamoDB wire protocol and delegates persistence to the backend you choose. Applications use any DynamoDB SDK; endpoint configuration is the only change.

PostgreSQL is the reference backend, validated against the full ExtendDB test suite. Cassandra and other community backends plug in through the same public interface. Supported operations include CRUD, Query, Scan, batch, transactions, Streams, expressions, and TTL.

Use cases<br>Why teams pick ExtendDB

Develop locally

High-fidelity DynamoDB API on your laptop. No network, no AWS account.

Local dev<br>CI / integration tests<br>Offline

Standardize across cloud and data center

Run the DynamoDB API on databases your team already operates, with no new dependency.

On-prem<br>Hybrid cloud<br>Pluggable backends

Ship to disconnected environments

Runs at factories, stores, vehicles, and remote sites without dependence on cloud connectivity.

Edge<br>Air-gapped<br>Intermittent network

FAQ<br>Frequently asked questions

What is ExtendDB?

ExtendDB is a DynamoDB-compatible API adapter that runs on infrastructure you manage. It accepts the same requests a DynamoDB client sends to the service and delegates data persistence to a pluggable storage backend. PostgreSQL is the reference backend, with Apache Cassandra and other backends supported through the same pluggable interface. ExtendDB ships under the Apache 2.0 license.

How is ExtendDB different from the DynamoDB service?

The DynamoDB service is fully managed and operated by AWS in AWS Regions. ExtendDB implements the DynamoDB API on infrastructure you run yourself, which extends the programming model to local development, on-premises data centers, and edge locations. ExtendDB is wire-protocol compatible with the service. Features tied to fully managed operations such as global tables, auto-scaling, backup and restore, and DAX are not available in a self-hosted deployment.

What storage backends are supported?

At launch, ExtendDB ships with PostgreSQL as the reference backend, feature-complete and validated against the full ExtendDB test suite. The storage backend is defined as an interface, so additional backends (Apache Cassandra, MySQL, and more) can be added by the community without modifying ExtendDB itself. You can switch between backends as your needs change.

Is ExtendDB open source?

Yes. ExtendDB is released under the Apache 2.0 license, the same license used by AWS CDK, Firecracker, and Bottlerocket. Apache 2.0 provides an explicit patent grant and permits use, modification, and redistribution.

Do I need to change my application code?

No. Supported operations accept the same HTTP request format and return the same response structures that DynamoDB clients use with the service. Your existing application code works without modification for any supported operation. This includes AWS SDKs (JavaScript, Python, Java, Go, and others) and higher-level libraries that wrap them (PynamoDB, Dynamoose, DynamoDB Toolbox, awswrangler) because they delegate to the underlying SDK for HTTP communication. You change the endpoint configuration and nothing else.

How does performance compare to cloud DynamoDB?

Performance depends on your infrastructure sizing and storage backend choice. With PostgreSQL on appropriately sized instances, single-item operations achieve sub-10ms latency for reads and writes. With Apache Cassandra as the backend,...

extenddb dynamodb backend pluggable backends apache

Related Articles