Skip to content

Cassandra: TransactWriteItems writes no stream record #516

Open

Description

@LeeroyHannigan

Summary

On the Cassandra backend a TransactWriteItems Put, Update or Delete on a table with an enabled stream records nothing to the stream. PutItem and BatchWriteItem on the same table record as expected; SQLite records all five shapes.

Measured on a server built from main 744ea29 against a Cassandra 4.1 node: a fresh table with NEW_AND_OLD_IMAGES, one PutItem, one BatchWriteItem Put, one TransactWriteItems with a Put, an Update and a Delete; GetRecords from TRIM_HORIZON on every shard returned the two single-item writes and none of the three transacted ones. On the service a transacted write produces a stream record like any other write.

Cause

crates/storage-cassandra/src/data/transactions.rs has no stream handling: the LOGGED BATCH it builds carries the item mutations only. The single-item and batch paths go through the write helpers that append the stream record to the batch.

Fix shape

Route the transaction's mutations through the same stream capture the single-item path uses, appending one stream record per item mutation to the LOGGED BATCH, so the record and the item land together. A wire test with a transacted Put, Update and Delete on a streamed table, run on every backend.

Found while reviewing #515.

Activity

  1. added this to the 1.0 milestone on Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

backend:cassandraRelated to the Cassandra backend specificallybugSomething isn't working

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions