maedhroz commented on code in PR #4572:
URL: https://github.com/apache/cassandra/pull/4572#discussion_r3075946050


##########
doc/modules/cassandra/pages/developing/cql/transactions.adoc:
##########
@@ -0,0 +1,987 @@
+= Accord Transactions
+:page-nav-title: Transactions
+
+Accord provides strong consistency and ACID guarantees for Cassandra 
operations.
+When enabled on a table, **all CQL operations automatically execute through 
Accord** - no code changes required.
+For complex multi-step operations, explicit transaction syntax (`BEGIN 
TRANSACTION ... COMMIT TRANSACTION`) allows you to read, apply conditions, and 
write atomically across multiple partitions and tables.
+
+== Overview
+
+=== Key Benefits
+
+* **Automatic Strong Consistency**: Normal CQL reads and writes become 
linearizable when `transactional_mode='full'`
+* **ACID Guarantees**: Atomicity, Consistency, Isolation, and Durability 
across multiple operations
+* **Multi-Partition Consistency**: Coordinate updates across different 
partition keys
+* **Multi-Table Support**: Update multiple tables atomically within a single 
transaction
+* **Complex Business Logic**: Support for conditional operations with multiple 
steps
+
+=== When to Use Explicit Transactions
+
+While normal CQL operations are automatically transactional with 
`transactional_mode='full'`, use explicit `BEGIN TRANSACTION ... COMMIT 
TRANSACTION` syntax when you need:
+
+* **Read-Modify-Write Patterns**: Check a condition before making changes
+* **Complex Business Logic**: Multi-step operations that must be atomic
+* **Cross-Partition Operations**: Updates that span multiple partition keys
+* **Multi-Table Atomicity**: Ensure related changes across tables succeed or 
fail together
+
+=== Safety & Consistency
+
+Accord ensures data integrity through:
+
+* **Strict Serializability**: Transactions execute as if in a single, total 
order that respects real-time ordering
+* **Conflict Detection**: Automatic handling of concurrent access to the same 
data
+* **Atomic Commitment**: All changes commit together or none at all
+* **Durable Writes**: Committed transactions survive node failures
+
+== Getting Started
+
+=== Prerequisites
+
+Before using transactions:
+
+. **Enable Accord globally** in `cassandra.yaml`:
++
+[source,yaml]
+----
+accord:
+  enabled: true
+----
+
+. **Enable transactional mode on tables**:
++
+[source,cql]
+----
+CREATE TABLE users (
+  id UUID PRIMARY KEY,
+  email text,
+  balance decimal
+) WITH transactional_mode = 'full';
+----
+
+See <<transactional-modes>> for detailed mode explanations.
+
+=== Normal CQL Operations Are Transactional
+
+When a table has `transactional_mode='full'`, your existing CQL statements are 
automatically executed through Accord. **You do not need to rewrite your 
application code.**
+
+[source,cql]
+----
+-- These normal CQL operations are automatically transactional:
+
+-- Reads are executed through Accord
+SELECT id, email, balance FROM users WHERE id = 
123e4567-e89b-12d3-a456-426614174000;
+
+-- Writes are executed through Accord
+INSERT INTO users (id, email, balance) VALUES 
(123e4567-e89b-12d3-a456-426614174000, '[email protected]', 100.00);
+
+UPDATE users SET balance = 50.00 WHERE id = 
123e4567-e89b-12d3-a456-426614174000;
+
+DELETE FROM users WHERE id = 123e4567-e89b-12d3-a456-426614174000;
+----
+
+Each statement executes as an individual Accord transaction, providing 
linearizability, consistency, and durability. Migrating to Accord can be as 
simple as enabling `transactional_mode='full'` on your tables.

Review Comment:
   nit: I'd actually have the link to the transactional modes after this 
sentence.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to