I'm storing some data in Cassandra, then after analyzing it puts in several table, I have its aggregation as daily, weekly, monthly, yearly basis. But after some time if some user reads the content I'm changing it in to read and unread status based on user activity.

But as per my current design either I need to update in all tables at-a-time (more than 5 tables and it may increase) or need create a single table for read unread but want to join the tables, Which is not recommending with nosql concept.

Any existing good architecture for it? I checked with lambda architecture but didn't get a good solution.

1 Answer 1


Aggregated or analytical data is often immutable, that is, it represents a finalized view of data over a certain time period, or w/r/t to some transformational processing.

So perhaps some of your problem stems from post hoc alteration of this data. Denormalized data is common in Cassandra, but maybe it would make sense to maintain the individual items (with the user read/unread status) in one table, and then re-run the aggregation as often as needed, storing the results separately.

The aggregate data itself can be stored in a single table by adding a clustering key to your table, allowing queries to be executable against a single temporal chunk (day, month, year, etc.)

Cassandra Timeseries Data Modeling

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.