PUCCA – A five-dimensional evaluation framework to choose which among DynamoDB, Cassandra & MongoDB suits your workload!

I was struggling despite tons of internet materials about how to choose among DynamoDB, Cassandra & MongoDB for my workloads, due to lack of a simple/concise set of guidelines, that I can keep handy & use when I need to.

So I created this acronym as PUCCA to help ask meaningful questions for the right evaluation which of these databases suit the need.

Performance – What are my latency needs? Is a primary key available either in full or part, or do I need alternate indexes or table scans? How my READs & WRITEs will spike, are those predictable or sudden? Can my partitioning strategy lead to hotkeys & throttling? Is multi-master cross-region replication needed? Can I survive a single point of failure? Can storage pattern (key/value, columnar, JSON) impact performance?

Use case – What is my use case? Is it analytics, or an IoT or recommendation engine or gaming app, or is it just a regular CRUD?

CAP/(Consistency, Availability, Partition-Tolerance) – Are my imperatives high availability, fault-tolerance & scalability in processing, or is it the consistency of data?

Cost – If my use case write-heavy then which option costs more? What is the cost of scalability?

Administration – Does it make more sense to go serverless or do I need control over my environment?

Happy to share thoughts.

Suvo Dutta

I have over 22 years of IT experience in strategy, advisory, innovations, and cloud-based solutions in the Insurance domain. I advise clients in transforming their IT ecosystems to future-ready architectures that can provide exemplary customer experience, improve operating efficiency, enable faster product development and unlock the power of data.

You may also like...