Discuss ACID vs. BASE properties

System Design
Easy
Microsoft
147K views

Explain the ACID properties of traditional relational databases and the BASE properties of many NoSQL/eventually consistent databases. Discuss scenarios where each is preferred.

Why Interviewers Ask This

Interviewers at Microsoft ask this to evaluate your ability to make trade-off decisions in distributed systems. They want to see if you understand that consistency isn't binary but a spectrum. This question tests whether you can justify architectural choices based on business requirements rather than blindly adhering to one paradigm.

How to Answer This Question

1. Define ACID clearly, listing Atomicity, Consistency, Isolation, and Durability with brief technical definitions for relational contexts. 2. Contrast this immediately with BASE, explaining Basically Available, Soft state, and Eventually consistent as the NoSQL alternative. 3. Use a comparative framework: map each property to its opposite (e.g., Strong Consistency vs. Eventual Consistency). 4. Discuss specific scenarios: use ACID for financial ledgers where errors are unacceptable, and BASE for social media feeds or caching layers where availability matters more than instant sync. 5. Conclude by emphasizing that modern systems often hybridize these approaches, showing depth of knowledge relevant to large-scale cloud architecture.

Key Points to Cover

  • Explicitly defining all four letters of ACID and BASE without skipping details
  • Demonstrating understanding that consistency is a trade-off, not a feature switch
  • Providing concrete industry examples like banking vs. social media feeds
  • Acknowledging that modern architectures often use a hybrid approach
  • Connecting the theoretical concepts to real-world scale challenges faced at companies like Microsoft

Sample Answer

When designing scalable systems, the choice between ACID and BASE depends entirely on the application's consistency needs versus availability requirements. ACID stands for Atomicity, Consistency, Isolation, and Durability. It guarantees that database transactions are processed reliably, making it ideal for banking systems where a single error could cost millions. For instance, transferring money requires atomic operations so funds aren't lost if a failure occurs mid-transaction. In contrast, BASE represents Basically Available, Soft state, and Eventually consistent. This model prioritizes uptime and scalability over immediate data consistency. It is perfect for high-traffic applications like social media likes or product catalogs where a user seeing slightly outdated data for a few seconds is acceptable. At Microsoft, we often see this in Azure services where global distribution necessitates eventual consistency to maintain low latency across regions. I prefer ACID when data integrity is non-negotiable, such as inventory management or payment processing. Conversely, I choose BASE for user-generated content, real-time analytics, or session storage where system availability trumps strict consistency. The key insight is recognizing that no single model fits all; a robust system design often combines both, using ACID for core transactional data and BASE for read-heavy, globally distributed caches.

Common Mistakes to Avoid

  • Framing the debate as ACID being 'better' than BASE, ignoring that they solve different problems
  • Defining the acronyms incorrectly, such as confusing 'Soft state' with temporary data loss
  • Failing to mention specific use cases where one model clearly outperforms the other
  • Ignoring the impact of network partitions and how CAP theorem influences these choices

Practice This Question with AI

Answer this question orally or via text and get instant AI-powered feedback on your response quality, structure, and delivery.

Start Practicing

Related Interview Questions

Browse all 150 System Design questionsBrowse all 65 Microsoft questions