Skip to content

Architecture

137 terms in this category

API Composition

API composition is when one service calls several other services and smooshes the results together into one response.

intermediateArchitecture

API First Design

API First Design means you write the API contract (like an OpenAPI spec) before writing any code — like drawing blueprints before building a house. Fronten

intermediateArchitecture

API Orchestration

API orchestration is a central conductor that coordinates multiple API calls in a specific sequence to complete a business process.

intermediateArchitecture

Abstraction

Abstraction is hiding the messy details and showing only what matters.

beginnerArchitecture

Adapter Pattern

You're in Europe with a US charger. You need an adapter. In code, your app expects a PaymentProcessor with a .pay() method, but the new Stripe SDK uses .

intermediateArchitecture

Aggregate

An aggregate is a cluster of domain objects that are treated as one unit for data changes.

advancedArchitecture

Ambassador Pattern

The ambassador pattern puts a proxy between your app and the outside world that handles all the annoying connection stuff — retries, circuit breaking, rout...

advancedArchitecture

Anti-Corruption Layer

An anti-corruption layer is a translator between two systems that speak different languages.

advancedArchitecture

Anti-Pattern

Anti-Pattern is the opposite of a design pattern — it's a commonly used approach that looks like it solves a problem but actually makes things worse.

beginnerArchitecture

Architecture

Architecture is the master blueprint for your app — like deciding whether to build a house, apartment block, or skyscraper before laying a single brick.

intermediateArchitecture

Autonomous Service

An autonomous service can function independently even when other services are down. It has its own database, its own logic, and can handle requests solo.

advancedArchitecture

BFF (BFF)

BFF is the abbreviation for Backend for Frontend. Not your best friend — your backend's best friend for a specific client.

intermediateArchitecture

Backend Gateway

A backend gateway is the front door to your microservices. All client requests hit the gateway first, and it routes them to the right service.

intermediateArchitecture

Backend for Frontend (BFF)

Backend for Frontend means building a dedicated backend for each frontend type. Your mobile app needs different data shapes than your web app.

intermediateArchitecture

Backends for Frontends (BFF)

BFF (Backends for Frontends) means each frontend gets its own custom backend. The mobile app gets a backend optimized for small payloads.

intermediateArchitecture

Backpressure

Backpressure is when a system says 'slow down, I can't handle this much data.

intermediateArchitecture

Big Ball of Mud

Big Ball of Mud is the ultimate architectural anti-pattern — a system with no recognizable structure at all.

intermediateArchitecture

Bounded Context

A bounded context is a boundary where a particular model and language applies. 'Customer' means one thing in Sales and something different in Shipping.

advancedArchitecture

Broken Windows Theory

The broken windows theory in code says that once one piece of bad code exists, more bad code follows.

beginnerArchitecture

CQRS

CQRS says: the way you write data and the way you read data should be separate systems. Writing (commands) goes to one model optimized for transactions.

advancedArchitecture

CRDT (CRDT)

A CRDT (Conflict-free Replicated Data Type) is a data structure that multiple users can edit simultaneously without conflicts.

advancedArchitecture

Cell-Based Architecture

Cell-based architecture splits your system into independent cells, each serving a subset of users.

advancedArchitecture

Choreography

Choreography is when services coordinate by reacting to each other's events without a central boss.

advancedArchitecture

Choreography vs Orchestration

Choreography: everyone dances independently, reacting to the music (events). Orchestration: a conductor tells each musician when to play. Both work.

advancedArchitecture

Circuit Breaker

Circuit Breaker is like the electrical circuit breaker in your house.

intermediateArchitecture

Clean Architecture

Clean Architecture is like an onion with strict rules: the inner layers (your core business logic) have absolutely no idea the outer layers (databases, API...

advancedArchitecture

Clean Architecture Layers

Clean Architecture's layers go: Entities (business rules) -> Use Cases (app rules) -> Interface Adapters (controllers, presenters) -> Frameworks & Drivers...

advancedArchitecture

Code Rot

Code rot is the slow decay of a codebase from neglect. Comments become lies. Dead code piles up. Conventions drift.

beginnerArchitecture

Code Smell

Code that works but feels... wrong. Like when food smells slightly off — it might be fine, but something isn't right.

beginnerArchitecture

Cohesion

Cohesion is how well the things inside a module belong together. High cohesion means all the stuff in a class is related — like a toolbox full of tools.

intermediateArchitecture

Command Bus

A command bus is the postal service for 'please do this' messages.

advancedArchitecture

Command Pattern

Every action in a text editor is a Command object: TypeTextCommand, DeleteWordCommand, BoldCommand.

intermediateArchitecture

Composition

Composition means building complex things by combining simple ones, rather than inheriting from a parent class.

intermediateArchitecture

Content-Addressed Storage

Content-addressed storage stores data by its hash, not its name — deduplication and integrity verification baked directly into the model.

advancedArchitecture

Context Mapping

Context mapping is drawing the diplomatic map of your system — which bounded contexts exist, how they relate, and who's in charge.

advancedArchitecture

Coupling

Coupling is how much two pieces of code depend on each other. Tight coupling means changing one breaks the other — like Siamese twins.

intermediateArchitecture

DDD (DDD)

DDD is the abbreviation for Domain-Driven Design — the practice of making your code speak fluent Business.

advancedArchitecture

DRY (Don't Repeat Yourself)

If you find yourself copy-pasting the same code in multiple places, STOP. Make it a reusable function instead.

beginnerArchitecture

Data Access Layer (DAL)

The data access layer is the entire floor of your architecture that handles talking to databases.

intermediateArchitecture

Data Contract

It's like a pinky promise between two teams, but legally binding (well, technically binding). Team A says 'I promise this data will always have these colum

advancedArchitecture

Data Mesh

Instead of one giant warehouse where ALL the company's data goes (and one poor team manages it), Data Mesh says 'each team owns their own data like it's a

advancedArchitecture

Database per Service

Database per service means each microservice gets its own private database that nobody else can touch. No shared tables, no direct queries across services.

intermediateArchitecture

Dead Letter Queue

A dead letter queue (DLQ) is where messages go to die — or more accurately, where they go when they can't be processed after multiple attempts.

intermediateArchitecture

Decorator Pattern

You have a Coffee object. You want Coffee with Milk. Coffee with Sugar. Coffee with Milk and Sugar. With inheritance you'd need four classes.

intermediateArchitecture

Dependency Injection

Instead of your UserService creating its own DatabaseConnection (tight coupling), you pass the database in from outside: new UserService(db).

intermediateArchitecture

Dependency Inversion

Dependency Inversion says high-level code shouldn't depend on low-level code — both should depend on abstractions.

intermediateArchitecture

Design Pattern

Design patterns are like recipe cards for solving common coding problems.

intermediateArchitecture

Distributed Monolith

A distributed monolith is what happens when you split your monolith into microservices but they're all still tightly coupled.

intermediateArchitecture

Domain Model

A domain model is a code representation of your real-world business.

intermediateArchitecture

Domain-Driven Design (DDD)

DDD says your code should speak the same language as the business.

advancedArchitecture

ESB (Enterprise Service Bus)

ESB is the short form for Enterprise Service Bus — the middleware that enterprise architects either love or love to hate.

advancedArchitecture

Encapsulation

Encapsulation is bundling data and the methods that operate on it into one unit, and hiding the internal state from the outside world.

beginnerArchitecture

Enterprise Service Bus

An ESB is the central highway that all your enterprise services communicate through. It routes messages, transforms data, and orchestrates workflows.

advancedArchitecture

Entropy Tax

Entropy tax is the cost you pay every time you touch a messy codebase. Every new feature takes 20% longer because the code is tangled.

intermediateArchitecture

Event Handler

An event handler is the code that says 'oh, something happened? Let me react to that.

intermediateArchitecture

Event Mesh

An event mesh is like a postal system for events that knows every address across all your clouds and data centers.

advancedArchitecture

Event Sourcing

Instead of storing 'balance: $100', event sourcing stores 'deposited $200, withdrew $50, withdrew $50'.

advancedArchitecture

Event Storming

Event storming is where you put a bunch of sticky notes on a wall and map out everything that happens in your business as events.

intermediateArchitecture

Event-Driven Architecture

Event-Driven Architecture is like a gossip network. When something happens (order placed!), it broadcasts the news.

intermediateArchitecture

Event-Driven Microservices

Event-driven microservices communicate by publishing events instead of calling each other directly. 'Hey, an order was placed!

advancedArchitecture

Eventual Consistency Pattern

Eventual consistency means 'give it a moment and everything will be in sync.' Like a bank deposit — the money shows up eventually, but not instantly.

advancedArchitecture

Facade Pattern

Facade Pattern is like the front desk at a hotel.

beginnerArchitecture

Factory Pattern

You want to create a 'notification' object but it might be an EmailNotification, SMSNotification, or PushNotification depending on user preferences.

intermediateArchitecture

Feature Envy

Feature envy is when a function spends more time poking around in another class's data than its own.

intermediateArchitecture

Feature Flag Rot

Feature flag rot is when a flag has been sitting around for so long that nobody knows what it does or what breaks when you flip it.

intermediateArchitecture

Feature Store

A feature store is like a shared pantry for ML features.

advancedArchitecture

Gateway Pattern

A gateway wraps access to an external system behind a nice, clean interface.

intermediateArchitecture

God Object

A god object is a class that knows everything, does everything, and has way too much power — like a single manager running every department of a company.

intermediateArchitecture

Golden Hammer

The golden hammer is when you find a tool you love and use it for EVERYTHING — even when it's completely wrong for the job. Love React?

beginnerArchitecture

Hexagonal Architecture

Hexagonal Architecture (aka Ports and Adapters) treats your app like a USB hub.

advancedArchitecture

Inheritance

Inheritance lets a class take on all the properties and behaviors of another class.

beginnerArchitecture

Interactor

An interactor is just another name for a use case — it's the code that 'interacts' with your domain to accomplish one specific task.

advancedArchitecture

Interface Segregation

Interface Segregation means don't force classes to implement methods they don't need.

intermediateArchitecture

Inversion of Control (IoC)

Inversion of Control is when a framework calls YOUR code instead of you calling the framework. You don't control the flow anymore — the framework does.

intermediateArchitecture

IoC (IoC)

IoC is the abbreviation for Inversion of Control. It's the Hollywood Principle: 'Don't call us, we'll call you.

intermediateArchitecture

KISS (Keep It Simple, Stupid)

Don't overcomplicate things! The simplest solution that works is usually the best one.

beginnerArchitecture

Legacy Tax

Legacy tax is what you pay for maintaining old systems that nobody wants to touch.

intermediateArchitecture

Liskov Substitution

Liskov Substitution says if class B extends class A, you should be able to swap B in everywhere A is used without anything breaking.

intermediateArchitecture

MVC (MVC)

MVC is like a restaurant: the Model is the kitchen (data and logic), the View is the plate of food (what the user sees), and the Controller is the waiter (...

beginnerArchitecture

MVVM (MVVM)

MVVM is MVC's cooler cousin for UI-heavy apps.

intermediateArchitecture

Message Broker

A Message Broker is the post office of your microservices world.

intermediateArchitecture

Message Queue

A Message Queue is a waiting room for tasks. Producers drop tasks in the queue, consumers pick them up and process them one at a time.

intermediateArchitecture

Micro Frontend

Micro frontends are microservices for the UI.

intermediateArchitecture

Modular Monolith

Modular Monolith is the best of both worlds: one deployable app (monolith) but organized into clear, separate modules that could become microservices somed...

intermediateArchitecture

Modular Monolith Pattern

A modular monolith is a single deployable app that's internally organized into independent modules with clear boundaries.

intermediateArchitecture

Module Federation

Module Federation lets separate webpack builds share code at runtime. App A can dynamically load a component from App B's bundle — no npm package needed.

advancedArchitecture

Observer Pattern

Think of a newsletter. You (the publisher/subject) publish content. Your subscribers (observers) automatically get notified when new content arrives.

intermediateArchitecture

Onion Architecture

Onion architecture arranges code in concentric layers like an onion. The core (domain) has no dependencies. Each outer layer depends inward, never outward.

advancedArchitecture

Open-Closed

Open-Closed means your code should be open for adding new features but closed for editing old working code.

intermediateArchitecture

Outbox Pattern

The outbox pattern solves the 'I need to update my database AND send an event, but what if one succeeds and the other fails?' problem.

advancedArchitecture

Over-engineering

Building a rocket ship when you just need a bicycle.

beginnerArchitecture

Platform Engineering

Platform engineering is building the roads so application developers can just drive.

intermediateArchitecture

Polymorphism

Polymorphism means the same method call can do different things depending on which object it's called on. Call 'speak()' on a Dog and you get a bark.

intermediateArchitecture

Polyrepo

Polyrepo is the opposite of monorepo — each service or project lives in its own separate repository.

beginnerArchitecture

Ports and Adapters

Ports and Adapters (aka Hexagonal Architecture) means your app defines 'ports' (interfaces) and the outside world connects through 'adapters.

advancedArchitecture

Premature Abstraction

Premature abstraction is creating a reusable, generic solution before you have enough examples to know what the abstraction should look like.

intermediateArchitecture

Presenter

A presenter takes raw data from your use case and formats it for display.

intermediateArchitecture

Process Manager

A process manager is the project coordinator for long-running workflows.

advancedArchitecture

Projection

A projection transforms raw events into a useful read model. Every time an 'OrderPlaced' event fires, the projection updates the dashboard table.

advancedArchitecture

Proxy Pattern

A Proxy is a stand-in for a real object that controls access to it.

intermediateArchitecture

Pub/Sub (Pub/Sub)

Pub/Sub is like a newspaper service. Publishers write articles and drop them off.

intermediateArchitecture

Read Model

A read model is a database view optimized specifically for reading — denormalized, pre-computed, and shaped exactly how the UI needs it.

advancedArchitecture

Refactor Fatigue

Refactor fatigue is when your team has refactored the same module four times in a year and nobody wants to touch it again.

intermediateArchitecture

Refactor Tax

Refactor tax is the extra work every feature costs because you're simultaneously refactoring underlying code. Each PR becomes 30% larger and 50% riskier.

intermediateArchitecture

Refactoring

Refactoring is improving the internal structure of code WITHOUT changing what it does from the outside.

beginnerArchitecture

Repository Pattern

Repository Pattern puts a layer between your business logic and your database, so your business code never writes SQL directly.

intermediateArchitecture

Repository Pattern (Architecture)

The repository pattern makes your database look like an in-memory collection. Instead of writing SQL, you call repository.findById(42) or repository.

intermediateArchitecture

Resumable Workflow

A resumable workflow can pause, crash, and pick up exactly where it left off — checkpoints for distributed systems that can't afford to restart.

advancedArchitecture

Retry Pattern

Retry Pattern is trying something again when it fails, because sometimes failures are temporary (network hiccup, brief overload).

beginnerArchitecture

Rewrite Syndrome

Rewrite syndrome is the near-universal engineering urge to throw out existing code and start over. 'It would be so much cleaner if we rewrote it in Rust.

intermediateArchitecture

SOA (Service Oriented Architecture)

SOA is the acronym for Service Oriented Architecture — the architectural style that your company's senior architect keeps bringing up in meetings because t...

intermediateArchitecture

SOLID (SOLID)

SOLID is five rules for writing code that doesn't turn into a nightmare over time. Each letter stands for a different rule.

intermediateArchitecture

Saga

A saga is a series of steps where each step has an undo action. If step 3 fails, you run the undo for steps 2 and 1.

advancedArchitecture

Saga Pattern

The saga pattern is how you handle transactions that span multiple services. In a monolith, you'd wrap everything in one database transaction.

advancedArchitecture

Screaming Architecture

Screaming architecture means your folder structure screams what the app DOES, not what framework it uses.

intermediateArchitecture

Second System Effect

The second system effect is when you rewrite a successful system from scratch and massively over-engineer it.

intermediateArchitecture

Self-Contained System

A self-contained system (SCS) is a mini-application that includes its own UI, backend, and database.

advancedArchitecture

Separation of Concerns

Separation of Concerns means different parts of your code should handle different concerns and not step on each other's toes.

beginnerArchitecture

Service Layer

Service Layer is the middle manager of your app. Controllers receive HTTP requests and hand off to services.

intermediateArchitecture

Service Oriented Architecture (SOA)

SOA is the granddaddy of microservices. It's the idea of building software as a collection of services that talk to each other over a network.

intermediateArchitecture

Shared Database

Shared database is when multiple services all read from and write to the same database.

intermediateArchitecture

Shotgun Surgery

Shotgun surgery is when one small change requires you to modify dozens of files across the codebase — like firing a shotgun and hitting everything.

intermediateArchitecture

Sidecar Pattern

The sidecar pattern attaches a helper container to your main app, like a motorcycle sidecar.

advancedArchitecture

Single Responsibility

Single Responsibility means every class or function should do ONE thing and do it well.

beginnerArchitecture

Singleton

Singleton is a pattern that ensures only ONE instance of a class exists in your entire app.

beginnerArchitecture

Singleton Pattern

Singleton says: 'this class shall have exactly ONE instance, ever.' Database connections, config objects, loggers — things you only want created once.

beginnerArchitecture

Strangler Fig Pattern

Replacing a legacy system piece by piece instead of doing a risky big-bang rewrite.

advancedArchitecture

Strategy Pattern

You're writing a sorter and want to sort by price, name, or date depending on user choice.

intermediateArchitecture

Tech Debt Snowball

A tech-debt snowball is when you avoid paying down small tech debt, it compounds, and six months later the simple feature you want to add requires rewritin...

intermediateArchitecture

Toggle Debt

Toggle debt is the pile of unused feature flags slowly suffocating your codebase. Every 'if (flag)' branch is cognitive load.

intermediateArchitecture

Toggle Hygiene

Toggle hygiene is the practice of cleaning up feature flags after they've served their purpose.

intermediateArchitecture

Turducken Architecture

Turducken architecture is when you have a system nested inside another system nested inside yet another system — like the famous chicken-inside-a-duck-insi...

intermediateArchitecture

Ubiquitous Language

Ubiquitous language means developers and business people use the EXACT SAME words for the same things.

intermediateArchitecture

Use Case

A use case is a single thing a user can do with your system — 'Place Order', 'Register Account', 'Cancel Subscription.

intermediateArchitecture

Vertical Slice Architecture

Vertical slice architecture organizes code by feature, not by layer.

intermediateArchitecture

Write Model

The write model is the authoritative version of your data that handles all the business rules and commands. It's the master copy in the vault.

advancedArchitecture

YAGNI (You Aren't Gonna Need It)

Don't build stuff you don't need right now.

beginnerArchitecture

Made with passive-aggressive love by manoga.digital. Powered by Claude.