This is an automated email from the ASF dual-hosted git repository.
palashc pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/phoenix-adapters.git
The following commit(s) were added to refs/heads/main by this push:
new 192ec69 README update with alternatives (#7)
192ec69 is described below
commit 192ec6965c9b3c8857fa53efbea6a87694754281
Author: Palash Chauhan <[email protected]>
AuthorDate: Wed May 27 18:14:04 2026 -0700
README update with alternatives (#7)
Co-authored-by: Palash Chauhan
<[email protected]>
---
README.md | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
diff --git a/README.md b/README.md
index 300dfbb..c5b7863 100644
--- a/README.md
+++ b/README.md
@@ -196,3 +196,81 @@ Logs are stored in the following locations:
- Main log: `$PHOENIX_ADAPTERS_LOG_DIR/rest.log`
- GC log: `$PHOENIX_ADAPTERS_LOG_DIR/gc.log`
- Heap dumps: `$PHOENIX_ADAPTERS_LOG_DIR/` (on OutOfMemoryError)
+
+## DynamoDB-Compatible Alternatives
+
+Several open-source projects provide DynamoDB-compatible APIs on non-AWS
infrastructure. Here's how they compare:
+
+> _Analysis as of **2026-05-27**._
+
+### At a Glance
+
+| | **Phoenix-Adapters** | **ScyllaDB Alternator** | **ExtendDB** |
+|---|---|---|---|
+| **Storage Engine** | Apache Phoenix / HBase | ScyllaDB (embedded) |
PostgreSQL |
+| **Language** | Java | C++ | Rust |
+| **Deployment** | Stateless REST servers + HBase cluster | Built into every
ScyllaDB node | Single binary + PostgreSQL |
+
+### API Coverage
+
+| Operation | Phoenix-Adapters | Alternator | ExtendDB |
+|---|:---:|:---:|:---:|
+| CreateTable / DeleteTable / DescribeTable / ListTables / UpdateTable | ✅ | ✅
| ✅ |
+| PutItem / GetItem / DeleteItem / UpdateItem | ✅ | ✅ | ✅ |
+| Query / Scan | ✅ | ✅ | ✅ |
+| BatchGetItem / BatchWriteItem | ✅ | ✅ | ✅ |
+| TransactWriteItems / TransactGetItems | ❌ | ❌ | ✅ |
+| DynamoDB Streams | ✅ | ✅ | ✅ |
+| GSI / LSI | ✅ | ✅ | ✅ |
+| TTL | ✅ | ✅ | ✅ |
+| Backup / Restore | ❌ | ❌ | ✅ |
+| Import / Export | ❌ | ❌ | ✅ |
+| Tagging | ❌ | ✅ | ✅ |
+| PartiQL | ❌ | ❌ | ❌ |
+
+### Expressions & Query Features
+
+| Feature | Phoenix-Adapters | Alternator | ExtendDB |
+|---|:---:|:---:|:---:|
+| ConditionExpression | ✅ | ✅ | ✅ |
+| FilterExpression | ✅ | ✅ | ✅ |
+| ProjectionExpression | ✅ | ✅ | ✅ |
+| UpdateExpression (SET/REMOVE/ADD/DELETE) | ✅ | ✅ | ✅ |
+| KeyConditionExpression | ✅ | ✅ | ✅ |
+| Legacy APIs (Expected, AttributesToGet, ScanFilter) | ✅ | ✅ | ❌ |
+
+### Scalability & Operations
+
+| | Phoenix-Adapters | Alternator
| ExtendDB |
+|----------------------------|-----------------------------|---------------------------------------|---|
+| **Horizontal scale** | Petabytes (HBase regions) | Petabytes
(ScyllaDB vnodes) | Single node server (PG vertical) |
+| **Multi-instance safe** | ✅ Stateless tier | ✅ Native
(peer-to-peer) | ❌ No coordination (documented gap) |
+| **Write distribution** | Across HBase region servers | Across ScyllaDB
nodes | Single PG writer |
+| **Data Consistency** | Configurable (HBase) | Tunable
(LOCAL_ONE / LOCAL_QUORUM) | Strong (PG default) |
+| **Index Consistency** | Eventual GSI / Strong LSI | Eventual GSI /
Strong LSI | Strong (PG default) |
+| **Operational complexity** | Medium (HBase + Phoenix) | Medium (ScyllaDB
cluster) | Low (binary + PG) |
+
+### Design Philosophy
+
+| | Phoenix-Adapters | Alternator | ExtendDB |
+|---|----------------------------------|---|---|
+| **Approach** | Many APIs → one backend | Embedded in storage engine
| One API → pluggable backends |
+| **Expression evaluation** | Server-side Phoenix functions | Native C++
in storage layer | In-process Rust evaluator |
+| **Index implementation** | Phoenix Global Secondary Indexes | ScyllaDB
materialized views | Separate PG tables |
+| **Stream implementation** | Phoenix CDC | ScyllaDB CDC
| Atomic with data writes (PG txn) |
+
+### When to Use What
+
+| Scenario | Best Fit |
+|---|---|
+| Need DynamoDB compat at petabyte scale on HBase infrastructure |
**Phoenix-Adapters** |
+| Already running ScyllaDB or want DDB API as a Cassandra alternative |
**Alternator** |
+| Need high API fidelity, transactions, or a lightweight local setup |
**ExtendDB** |
+| Must support legacy DynamoDB APIs (Expected, QueryFilter) |
**Phoenix-Adapters** or **Alternator** |
+| Need multi-item atomic transactions (TransactWriteItems) | **ExtendDB**
(only option) |
+
+### Links
+
+- [Phoenix-Adapters](https://github.com/apache/phoenix-adapters) — DynamoDB on
Phoenix/HBase
+- [ScyllaDB Alternator](https://www.scylladb.com/technologies/dynamodb-api/) —
DynamoDB embedded in ScyllaDB
+- [ExtendDB](https://github.com/ExtendDB/extenddb) — DynamoDB on PostgreSQL
(pluggable)
\ No newline at end of file