Course contentsShow
← Data Engineering
Lesson 20 of 8251. Foundations of Data EngineeringFree lesson

Selecting Architectures Based on Business Requirements

Determine the optimal architectural pattern by matching specific business use cases to the strengths of monolithic or modern distributed systems.

In this lesson, you will learn how to choose between a monolithic or distributed architecture by aligning your business goals with the technical trade-offs of each system.

The Architectural Choice

Choosing an architecture isn't about picking the "coolest" tech; it’s about solving a business problem. When you are asked to design a data platform, you must weigh your requirements—like budget, team size, data volume, and latency needs—against the strengths of your options.

Monolithic Systems

A monolithic architecture houses storage, compute, and processing logic in a single, tightly coupled environment (like a traditional on-premises database).

  • Best for: Small-scale projects, low data volume, or startups where simplicity is the primary driver.
  • Trade-off: You cannot scale storage without paying for more compute, and maintenance becomes difficult as the system grows.

Distributed Systems

A distributed architecture decouples storage from compute, allowing you to scale each independently based on current demand.

  • Best for: Large-scale enterprise data, high-concurrency analytical workloads, or scenarios where data volume is unpredictable.
  • Trade-off: Higher complexity in management, network overhead, and potential costs associated with data movement.

Making the Decision

Consider a business that needs to generate a monthly regulatory report. The volume is predictable, and the data is relatively small. A simple monolithic stack might be the most cost-effective choice.

Conversely, imagine a retail company running a global website where inventory data changes every second and requires real-time analysis for millions of customers. You would prioritize a distributed architecture to handle the high throughput and decoupled compute:

-- Conceptual view: Distributed systems allow compute to scale 
-- independently of the underlying storage (e.g., Cloud Data Warehouse)
SELECT region, SUM(sales) 
FROM large_scale_distributed_table 
WHERE timestamp >= CURRENT_DATE - INTERVAL '1 hour'
GROUP BY region;

When selecting, ask yourself: Does the business need to scale horizontally to keep up with growth, or is the priority keeping the system simple and easy to maintain? If the answer is scale and flexibility, distributed wins. If the answer is simplicity and lower management overhead, monolithic often prevails.

Key Takeaway: Selecting an architecture is a balancing act between the need for massive, independent scalability (distributed) and the need for operational simplicity (monolithic).