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

Reply via email to