iwantcoding.com
🔥 Daily 👥 Rooms 🏆 Top Log in Sign up

1.2 Software Architecture

Software architecture turns business intent into running systems. The four mainstream styles - layered (monolith), client-server, microservices, and event-driven - each trade off ease of build against scale, blast radius, and ownership. This lesson contrasts them with a single decision lens.

Style Comparison

The choice of architecture style determines how a system scales, how easily teams can ship changes independently, and how failures propagate.

Architecture Styles at a Glance Presentation Business Logic Data Access Database Layered Client Client Server Client-Server Auth Order Pay Cart Ship Mail Microservices Publisher Event Bus / Broker Sub A Sub B Event-Driven Left-to-right: tighter coupling and simpler ops Right-to-left: looser coupling and richer scaling

Figure 5.1 - Four common software-architecture styles arranged from most-coupled to most-decoupled.

When Each Style Fits

StyleBest ForAvoid WhenTypical Team
Layered (monolith)One product, one DB, small team, fast time-to-marketYou need independent deploys per feature1-15 devs
Client-ServerDesktop apps with shared DB, internal LAN toolsMobile-first, web-scale traffic5-30 devs
MicroservicesMultiple bounded contexts, strict uptime SLAsSingle team without DevOps maturity30+ devs across 5+ pods
Event-DrivenAsync workflows, integration hubs, IoT ingestHard request-response UX where latency is sensitiveMixed product + platform

Decision Lens

The biggest mistake is jumping to microservices early. Start with a well-modularised monolith. Split out a service only when you have **a real reason** - independent scale, independent ownership, or independent release cadence.

Discussion

Loading…