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 51dc628  README update with alternatives (Addendum) (#8)
51dc628 is described below

commit 51dc628a15bebde7fe2e8b6cd540484e25c074bb
Author: Palash Chauhan <[email protected]>
AuthorDate: Thu May 28 09:06:34 2026 -0700

    README update with alternatives (Addendum) (#8)
    
    Co-authored-by: Palash Chauhan 
<[email protected]>
---
 ALTERNATIVES.md | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 README.md       | 81 +++++----------------------------------------------------
 2 files changed, 82 insertions(+), 75 deletions(-)

diff --git a/ALTERNATIVES.md b/ALTERNATIVES.md
new file mode 100644
index 0000000..089ca2a
--- /dev/null
+++ b/ALTERNATIVES.md
@@ -0,0 +1,76 @@
+# DynamoDB-Compatible Alternatives
+
+Several open-source projects provide DynamoDB-compatible APIs on non-AWS 
infrastructure. This document compares **Phoenix-Adapters** with the two most 
prominent alternatives — **ScyllaDB Alternator** and **ExtendDB** — across 
architecture, API surface, scalability, and design philosophy, to help you pick 
the right tool for your workload.
+
+> _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 | ❌ | ✅ | ✅ |
+
+## 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)
diff --git a/README.md b/README.md
index c5b7863..3992363 100644
--- a/README.md
+++ b/README.md
@@ -199,78 +199,9 @@ Logs are stored in the following locations:
 
 ## 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
+Phoenix-Adapters is one of several open-source projects that expose a 
DynamoDB-compatible API on non-AWS infrastructure. The two most prominent 
alternatives are:
+
+- [**ScyllaDB 
Alternator**](https://www.scylladb.com/technologies/dynamodb-api/) — DynamoDB 
API embedded in ScyllaDB.
+- [**ExtendDB**](https://github.com/ExtendDB/extenddb) — DynamoDB API on 
PostgreSQL.
+
+📊 **For a detailed feature-by-feature comparison — API coverage, expressions, 
scalability, design philosophy, and a "when to use what" guide — see 
[ALTERNATIVES.md](ALTERNATIVES.md).**
\ No newline at end of file

Reply via email to