Hartmut Armbruster
Maximising Cassandra's Potential: Tips on Schema, Queries, Parallel Access, and Reactive Programming
#1about 2 minutes
Designing a high-performance social media feed backend
The goal is to design a backend and data layer for a social platform feed that responds in under 10 milliseconds at massive scale.
#2about 2 minutes
Defining functional requirements for the social feed
Key features include pinned pagination to handle real-time updates and an endless scroll, supported by core data entities like posts and users.
#3about 2 minutes
Understanding Cassandra's query-first data modeling
Unlike relational databases, Cassandra requires designing your data model based on specific query patterns due to its lack of joins and limited indexing.
#4about 3 minutes
Defining access patterns and the initial post schema
The first step in schema design is defining the five core query patterns and creating the main posts table with a feed ID partition key.
#5about 4 minutes
Using time-based ULIDs for efficient pagination
Using universally unique lexicographically sortable identifiers (ULIDs) as clustering keys enables efficient, time-based pagination without needing slow offsets.
#6about 3 minutes
Optimizing counts and the initial sequential process
The initial design avoids slow SELECT COUNT queries by using a LIMIT, but the sequential process flow is still highly inefficient, requiring 81 queries per page.
#7about 6 minutes
Iterative refinement through schema and process changes
The design is iteratively improved by merging tables, introducing parallelism, and modifying the schema to enable efficient bulk data fetching with IN clauses.
#8about 6 minutes
Implementing the flow with a reactive programming stack
A non-blocking, reactive stack using Kotlin, Quarkus, and Mutiny is chosen to efficiently orchestrate the parallel database queries required by Cassandra.
#9about 2 minutes
Achieving sub-4ms response times with optimization
An OpenTelemetry trace demonstrates the final implementation achieving a 3.72 millisecond response time for the complex feed API request.
#10about 3 minutes
Understanding the complexities and trade-offs of Cassandra
Cassandra introduces significant operational complexity, including data denormalization and difficult migrations, making it a choice for massive scale rather than general use.
Related jobs
Jobs that call for the skills explored in this talk.
Matching moments
00:04 MIN
Discovering reactive programming through a modern Quarkus project
Is reactive the new black? Imperative vs. reactive programming with Quarkus
24:02 MIN
Improving performance with reactive programming and Quarkus
Application Modernization and Rabbits
14:52 MIN
Recapping Kafka's capabilities for real-time data feeds
Let's Get Started With Apache Kafka® for Python Developers
00:05 MIN
Introducing the DataStax real-time data cloud
Building Real-Time AI/ML Agents with Distributed Data using Apache Cassandra and Astra DB
16:38 MIN
Implementing a CQRS banking demo with Kafka
From event streaming to event sourcing 101
19:56 MIN
Adopting a modern tech stack for faster development
How to Destroy a Monolith?
34:43 MIN
Answering questions on Cube's architecture and use cases
Making Data Warehouses fast. A developer's story.
27:05 MIN
Q&A on implementation details and technology choices
Challenges for omnichannel applications at ALDI: Data distribution and offline capabilities
Featured Partners
Related Videos
Database Magic behind 40 Million operations/s
Jürgen Pilz
Scaling: from 0 to 20 million users
Josip Stuhli
The Rise of Reactive Microservices
David Leitner
Development of reactive applications with Quarkus
Niklas Heidloff
Is reactive the new black? Imperative vs. reactive programming with Quarkus
Tatiana Chervova
Scaling Databases
Tobias Petry
Single Server, Global Reach: Running a Worldwide Marketplace on Bare Metal in a Cloud-Dominated World
Jens Happe
In-Memory Computing - The Big Picture
Markus Kett
Related Articles
View all articles

.gif?w=240&auto=compress,format)

From learning to earning
Jobs that call for the skills explored in this talk.

Database Engineer für hochverfügbare Systeme - Cassandra Champion (all genders)
Frequentis AG
€47K
Cassandra

Lead Software Engineer - Cassandra Engineering
JPMorgan Chase & Co.
London, United Kingdom
Senior
Linux
Ansible
Cassandra
Amazon DynamoDB
Configuration Management


Lead Backend Engineer (m/f/d)
Peter Park System GmbH
München, Germany
Senior
Python
Docker
Node.js
JavaScript


Full Stack Software Developer
Red Bull Media House GmbH
Elsbethen, Austria
Intermediate
Java
NoSQL
Docker
Angular
Hibernate
+6


Senior DevOps Engineer - Search & Services - (f/m/x)
AUTO1 Group SE
Berlin, Germany
Intermediate
Senior
ELK
Terraform
Elasticsearch

Senior Full Stack Software Engineer
Red Bull Media House GmbH
Elsbethen, Austria
Senior
Java
NoSQL
Docker
Angular
Hibernate
+6