/plushcap/analysis/datastax/datastax-scalable-inventory

Scalable Inventory

What's this blog post about?

This text discusses best practices for creating a robust, linear scalable inventory management system using distributed systems. The approach involves partitioning inventory by SKU and isolating SKU access through partitionable queues like Kafka or RabbitMQ. Cassandra is used to track actual counts (inventory.counts) and history (inventory.log). Using SKU as the partition key allows for full visibility of demand and availability, and isolation for lightweight transactions. The design includes a transaction log table with default TTL and DateTieredCompactionStrategy for efficient data storage and management. Concurrency is managed using chord pattern and two classes of workers: HTTP workers and inventory service workers. These workers communicate through partitionable queues to ensure linear scalability and concurrency isolation, allowing each side of the system to scale independently. The Cassandra cluster's data model is isolated at the SKU level, enabling linear scaling with SKU and node count.

Company
DataStax

Date published
Sept. 30, 2015

Author(s)
Matt Stump

Word count
1052

Hacker News points
None found.

Language
English


By Matt Makai. 2021-2024.