1/25
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
A high-level, reusable design blueprint that defines the structural organization of a software system — how major components are organized, how they store data, and how they communicate across a network.
Architectural Style
Key attribute of an architectural style: the structural building blocks of the system (e.g., databases, user interfaces, standalone services, modules, or clients).
Components
Key attribute of an architectural style: the mechanisms used by components to communicate or pass data to one another (e.g., REST APIs, message queues, network sockets).
Connectors
Key attribute of an architectural style: the strict rules and limitations that govern the system's design (e.g., "layers can only talk to the layer directly beneath them").
Constraints
The 4 Architectural Styles covered, representing the evolution from tightly coupled, single-unit systems to highly distributed, autonomous services, in order.
Layered Architecture, Client-Server Architecture, Service-Oriented Architecture (SOA), Microservices Architecture
The most common traditional pattern, where components are organized into horizontal, distinct layers with specific responsibilities; each layer only communicates with the layer directly beneath it.
Layered Architecture (N-Tier)
The principle in Layered Architecture where each layer only communicates with the layer directly beneath it.
Isolation of Concerns
The typical layers in Layered Architecture, from top to bottom.
Presentation (UI), Business/Logic, Data Access (DAO), Database
Layered Architecture — con: high coupling; a change in this layer often ripples all the way up to the presentation layer.
Database Layer (coupling issue)
Layered Architecture is best used when applications are relatively stable, you want this, and integration is mostly internal (ETL, batch jobs).
Maintainability and Modularity
The architecture that splits systems into discrete consumers of services (clients) and centralized providers of services (servers).
Client-Server Architecture
Client-Server Architecture relies heavily on this kind of communication loop over a shared network protocol.
Synchronous request-response loops
Client-Server Architecture is best used when you want this kind of control with multiple distributed clients.
Centralized control
Client-Server Architecture — pro: centralized security and data management, and easy to update this without modifying clients.
Server logic
Client-Server Architecture — con: the server represents this kind of risk (a single point of failure and performance bottleneck).
Single point of failure
Client-Server Architecture is best for these kinds of systems (banking, POS, ERP).
Transactional systems
An enterprise-level architectural style where business functions are modularized into distinct, reusable services that communicate via a central bus.
Service-Oriented Architecture (SOA)
In SOA, services are integrated using this, which handles protocol translation, routing, and message transformation.
Enterprise Service Bus (ESB)
The heavy protocols SOA often utilizes in communication.
SOAP, XML, WSDL
A modern evolution of SOA where an application is built as a suite of small, completely autonomous, and independently deployable services.
Microservices Architecture
In Microservices Architecture, each service owns its own database, described as this kind of data model.
Decentralized data
In Microservices Architecture, each service focuses on this — a single, narrow business function.,A single
narrow business capability
Microservices Architecture — pro: this benefit where a failure in one service doesn't bring down the whole system.
Fault isolation
You should avoid Microservices Architecture if your organization lacks these two things.
DevOps maturity and monitoring capabilities
Architectural style diagram component in SOA that routes CRM Application, E-Commerce Portal, and Shipping Warehouse requests to Inventory System, Payment Gateway, and Customer Database.
Enterprise Service Bus (ESB) — routing role
Architectural style diagram component in Microservices that routes requests from clients to Order Service, Product Service, and Account Service.
API Gateway