I'm looking for recommendations on an architecture that can handle a very read-heavy dataset, specifically targeting read rates of up to 500,000 per second with a response time of less than 1 millisecond. Eventual consistency is acceptable for my use case. While writes are consistently around 50 per second, they can occasionally spike up to 1,000, but latency isn't a priority for those. The data size is quite small, typically under 1KB for both reads and writes. I'm currently considering solutions like DynamoDB with DAX, Elasticache, and MemoryDB, but I'm open to other suggestions. What do you think?
1 Answer
For the kind of response time you're aiming for, it's crucial to utilize an in-memory database. Keeping it in the same availability zone as your services can significantly improve performance. DAX can provide speed boosts, but beware of response time spikes on cache misses. If durability is a priority, MemoryDB might be the best fit for you.
I get what you're saying. If the dataset is small enough, cache misses shouldn't be an issue. But then, is there really a need for DynamoDB at all?