[{"data":1,"prerenderedAt":561},["ShallowReactive",2],{"category-architecture":3},[4,11,15,19,24,28,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,162,167,171,175,179,183,187,191,195,199,203,207,211,216,220,223,227,231,235,239,243,247,251,255,259,263,267,271,275,279,283,287,291,295,299,303,308,311,316,320,324,328,332,336,340,344,348,352,356,360,364,368,372,376,380,384,388,392,396,400,404,408,412,416,420,424,428,432,436,440,444,448,452,457,461,465,469,473,477,481,485,489,492,496,500,504,508,512,516,520,524,528,532,536,540,544,548,552,556],{"title":5,"path":6,"acronym":7,"category":8,"difficulty":9,"description":10},"API Composition","\u002Fterms\u002Fa\u002Fapi-composition",null,"architecture","intermediate","API composition is when one service calls several other services and smooshes the results together into one response.",{"title":12,"path":13,"acronym":7,"category":8,"difficulty":9,"description":14},"API First Design","\u002Fterms\u002Fa\u002Fapi-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",{"title":16,"path":17,"acronym":7,"category":8,"difficulty":9,"description":18},"API Orchestration","\u002Fterms\u002Fa\u002Fapi-orchestration","API orchestration is a central conductor that coordinates multiple API calls in a specific sequence to complete a business process.",{"title":20,"path":21,"acronym":7,"category":8,"difficulty":22,"description":23},"Abstraction","\u002Fterms\u002Fa\u002Fabstraction","beginner","Abstraction is hiding the messy details and showing only what matters.",{"title":25,"path":26,"acronym":7,"category":8,"difficulty":9,"description":27},"Adapter Pattern","\u002Fterms\u002Fa\u002Fadapter-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 .",{"title":29,"path":30,"acronym":7,"category":8,"difficulty":31,"description":32},"Aggregate","\u002Fterms\u002Fa\u002Faggregate","advanced","An aggregate is a cluster of domain objects that are treated as one unit for data changes.",{"title":34,"path":35,"acronym":7,"category":8,"difficulty":31,"description":36},"Ambassador Pattern","\u002Fterms\u002Fa\u002Fambassador-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...",{"title":38,"path":39,"acronym":7,"category":8,"difficulty":31,"description":40},"Anti-Corruption Layer","\u002Fterms\u002Fa\u002Fanti-corruption-layer","An anti-corruption layer is a translator between two systems that speak different languages.",{"title":42,"path":43,"acronym":7,"category":8,"difficulty":22,"description":44},"Anti-Pattern","\u002Fterms\u002Fa\u002Fanti-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.",{"title":46,"path":47,"acronym":7,"category":8,"difficulty":9,"description":48},"Architecture","\u002Fterms\u002Fa\u002Farchitecture","Architecture is the master blueprint for your app — like deciding whether to build a house, apartment block, or skyscraper before laying a single brick.",{"title":50,"path":51,"acronym":7,"category":8,"difficulty":31,"description":52},"Autonomous Service","\u002Fterms\u002Fa\u002Fautonomous-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.",{"title":54,"path":55,"acronym":54,"category":8,"difficulty":9,"description":56},"BFF","\u002Fterms\u002Fb\u002Fbff","BFF is the abbreviation for Backend for Frontend. Not your best friend — your backend's best friend for a specific client.",{"title":58,"path":59,"acronym":7,"category":8,"difficulty":9,"description":60},"Backend Gateway","\u002Fterms\u002Fb\u002Fbackend-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.",{"title":62,"path":63,"acronym":54,"category":8,"difficulty":9,"description":64},"Backend for Frontend","\u002Fterms\u002Fb\u002Fbackend-for-frontend","Backend for Frontend means building a dedicated backend for each frontend type. Your mobile app needs different data shapes than your web app.",{"title":66,"path":67,"acronym":54,"category":8,"difficulty":9,"description":68},"Backends for Frontends","\u002Fterms\u002Fb\u002Fbackends-for-frontends","BFF (Backends for Frontends) means each frontend gets its own custom backend. The mobile app gets a backend optimized for small payloads.",{"title":70,"path":71,"acronym":7,"category":8,"difficulty":9,"description":72},"Backpressure","\u002Fterms\u002Fb\u002Fbackpressure","Backpressure is when a system says 'slow down, I can't handle this much data.",{"title":74,"path":75,"acronym":7,"category":8,"difficulty":9,"description":76},"Big Ball of Mud","\u002Fterms\u002Fb\u002Fbig-ball-of-mud","Big Ball of Mud is the ultimate architectural anti-pattern — a system with no recognizable structure at all.",{"title":78,"path":79,"acronym":7,"category":8,"difficulty":31,"description":80},"Bounded Context","\u002Fterms\u002Fb\u002Fbounded-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.",{"title":82,"path":83,"acronym":7,"category":8,"difficulty":22,"description":84},"Broken Windows Theory","\u002Fterms\u002Fb\u002Fbroken-windows-theory","The broken windows theory in code says that once one piece of bad code exists, more bad code follows.",{"title":86,"path":87,"acronym":7,"category":8,"difficulty":31,"description":88},"CQRS","\u002Fterms\u002Fc\u002Fcqrs","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.",{"title":90,"path":91,"acronym":90,"category":8,"difficulty":31,"description":92},"CRDT","\u002Fterms\u002Fc\u002Fcrdt","A CRDT (Conflict-free Replicated Data Type) is a data structure that multiple users can edit simultaneously without conflicts.",{"title":94,"path":95,"acronym":7,"category":8,"difficulty":31,"description":96},"Cell-Based Architecture","\u002Fterms\u002Fc\u002Fcell-based-architecture","Cell-based architecture splits your system into independent cells, each serving a subset of users.",{"title":98,"path":99,"acronym":7,"category":8,"difficulty":31,"description":100},"Choreography","\u002Fterms\u002Fc\u002Fchoreography","Choreography is when services coordinate by reacting to each other's events without a central boss.",{"title":102,"path":103,"acronym":7,"category":8,"difficulty":31,"description":104},"Choreography vs Orchestration","\u002Fterms\u002Fc\u002Fchoreography-vs-orchestration","Choreography: everyone dances independently, reacting to the music (events). Orchestration: a conductor tells each musician when to play. Both work.",{"title":106,"path":107,"acronym":7,"category":8,"difficulty":9,"description":108},"Circuit Breaker","\u002Fterms\u002Fc\u002Fcircuit-breaker","Circuit Breaker is like the electrical circuit breaker in your house.",{"title":110,"path":111,"acronym":7,"category":8,"difficulty":31,"description":112},"Clean Architecture","\u002Fterms\u002Fc\u002Fclean-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...",{"title":114,"path":115,"acronym":7,"category":8,"difficulty":31,"description":116},"Clean Architecture Layers","\u002Fterms\u002Fc\u002Fclean-architecture-layers","Clean Architecture's layers go: Entities (business rules) -> Use Cases (app rules) -> Interface Adapters (controllers, presenters) -> Frameworks & Drivers...",{"title":118,"path":119,"acronym":7,"category":8,"difficulty":22,"description":120},"Code Rot","\u002Fterms\u002Fc\u002Fcode-rot","Code rot is the slow decay of a codebase from neglect. Comments become lies. Dead code piles up. Conventions drift.",{"title":122,"path":123,"acronym":7,"category":8,"difficulty":22,"description":124},"Code Smell","\u002Fterms\u002Fc\u002Fcode-smell","Code that works but feels... wrong. Like when food smells slightly off — it might be fine, but something isn't right.",{"title":126,"path":127,"acronym":7,"category":8,"difficulty":9,"description":128},"Cohesion","\u002Fterms\u002Fc\u002Fcohesion","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.",{"title":130,"path":131,"acronym":7,"category":8,"difficulty":31,"description":132},"Command Bus","\u002Fterms\u002Fc\u002Fcommand-bus","A command bus is the postal service for 'please do this' messages.",{"title":134,"path":135,"acronym":7,"category":8,"difficulty":9,"description":136},"Command Pattern","\u002Fterms\u002Fc\u002Fcommand-pattern","Every action in a text editor is a Command object: TypeTextCommand, DeleteWordCommand, BoldCommand.",{"title":138,"path":139,"acronym":7,"category":8,"difficulty":9,"description":140},"Composition","\u002Fterms\u002Fc\u002Fcomposition","Composition means building complex things by combining simple ones, rather than inheriting from a parent class.",{"title":142,"path":143,"acronym":7,"category":8,"difficulty":31,"description":144},"Content-Addressed Storage","\u002Fterms\u002Fc\u002Fcontent-addressed-storage","Content-addressed storage stores data by its hash, not its name — deduplication and integrity verification baked directly into the model.",{"title":146,"path":147,"acronym":7,"category":8,"difficulty":31,"description":148},"Context Mapping","\u002Fterms\u002Fc\u002Fcontext-mapping","Context mapping is drawing the diplomatic map of your system — which bounded contexts exist, how they relate, and who's in charge.",{"title":150,"path":151,"acronym":7,"category":8,"difficulty":9,"description":152},"Coupling","\u002Fterms\u002Fc\u002Fcoupling","Coupling is how much two pieces of code depend on each other. Tight coupling means changing one breaks the other — like Siamese twins.",{"title":154,"path":155,"acronym":154,"category":8,"difficulty":31,"description":156},"DDD","\u002Fterms\u002Fd\u002Fddd","DDD is the abbreviation for Domain-Driven Design — the practice of making your code speak fluent Business.",{"title":158,"path":159,"acronym":160,"category":8,"difficulty":22,"description":161},"DRY","\u002Fterms\u002Fd\u002Fdry","Don't Repeat Yourself","If you find yourself copy-pasting the same code in multiple places, STOP. Make it a reusable function instead.",{"title":163,"path":164,"acronym":165,"category":8,"difficulty":9,"description":166},"Data Access Layer","\u002Fterms\u002Fd\u002Fdata-access-layer","DAL","The data access layer is the entire floor of your architecture that handles talking to databases.",{"title":168,"path":169,"acronym":7,"category":8,"difficulty":31,"description":170},"Data Contract","\u002Fterms\u002Fd\u002Fdata-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",{"title":172,"path":173,"acronym":7,"category":8,"difficulty":31,"description":174},"Data Mesh","\u002Fterms\u002Fd\u002Fdata-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 ",{"title":176,"path":177,"acronym":7,"category":8,"difficulty":9,"description":178},"Database per Service","\u002Fterms\u002Fd\u002Fdatabase-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.",{"title":180,"path":181,"acronym":7,"category":8,"difficulty":9,"description":182},"Dead Letter Queue","\u002Fterms\u002Fd\u002Fdead-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.",{"title":184,"path":185,"acronym":7,"category":8,"difficulty":9,"description":186},"Decorator Pattern","\u002Fterms\u002Fd\u002Fdecorator-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.",{"title":188,"path":189,"acronym":7,"category":8,"difficulty":9,"description":190},"Dependency Injection","\u002Fterms\u002Fd\u002Fdependency-injection","Instead of your UserService creating its own DatabaseConnection (tight coupling), you pass the database in from outside: new UserService(db).",{"title":192,"path":193,"acronym":7,"category":8,"difficulty":9,"description":194},"Dependency Inversion","\u002Fterms\u002Fd\u002Fdependency-inversion","Dependency Inversion says high-level code shouldn't depend on low-level code — both should depend on abstractions.",{"title":196,"path":197,"acronym":7,"category":8,"difficulty":9,"description":198},"Design Pattern","\u002Fterms\u002Fd\u002Fdesign-pattern","Design patterns are like recipe cards for solving common coding problems.",{"title":200,"path":201,"acronym":7,"category":8,"difficulty":9,"description":202},"Distributed Monolith","\u002Fterms\u002Fd\u002Fdistributed-monolith","A distributed monolith is what happens when you split your monolith into microservices but they're all still tightly coupled.",{"title":204,"path":205,"acronym":7,"category":8,"difficulty":9,"description":206},"Domain Model","\u002Fterms\u002Fd\u002Fdomain-model","A domain model is a code representation of your real-world business.",{"title":208,"path":209,"acronym":154,"category":8,"difficulty":31,"description":210},"Domain-Driven Design","\u002Fterms\u002Fd\u002Fdomain-driven-design","DDD says your code should speak the same language as the business.",{"title":212,"path":213,"acronym":214,"category":8,"difficulty":31,"description":215},"ESB","\u002Fterms\u002Fe\u002Fesb","Enterprise Service Bus","ESB is the short form for Enterprise Service Bus — the middleware that enterprise architects either love or love to hate.",{"title":217,"path":218,"acronym":7,"category":8,"difficulty":22,"description":219},"Encapsulation","\u002Fterms\u002Fe\u002Fencapsulation","Encapsulation is bundling data and the methods that operate on it into one unit, and hiding the internal state from the outside world.",{"title":214,"path":221,"acronym":7,"category":8,"difficulty":31,"description":222},"\u002Fterms\u002Fe\u002Fenterprise-service-bus","An ESB is the central highway that all your enterprise services communicate through. It routes messages, transforms data, and orchestrates workflows.",{"title":224,"path":225,"acronym":7,"category":8,"difficulty":9,"description":226},"Entropy Tax","\u002Fterms\u002Fe\u002Fentropy-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.",{"title":228,"path":229,"acronym":7,"category":8,"difficulty":9,"description":230},"Event Handler","\u002Fterms\u002Fe\u002Fevent-handler","An event handler is the code that says 'oh, something happened? Let me react to that.",{"title":232,"path":233,"acronym":7,"category":8,"difficulty":31,"description":234},"Event Mesh","\u002Fterms\u002Fe\u002Fevent-mesh","An event mesh is like a postal system for events that knows every address across all your clouds and data centers.",{"title":236,"path":237,"acronym":7,"category":8,"difficulty":31,"description":238},"Event Sourcing","\u002Fterms\u002Fe\u002Fevent-sourcing","Instead of storing 'balance: $100', event sourcing stores 'deposited $200, withdrew $50, withdrew $50'.",{"title":240,"path":241,"acronym":7,"category":8,"difficulty":9,"description":242},"Event Storming","\u002Fterms\u002Fe\u002Fevent-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.",{"title":244,"path":245,"acronym":7,"category":8,"difficulty":9,"description":246},"Event-Driven Architecture","\u002Fterms\u002Fe\u002Fevent-driven-architecture","Event-Driven Architecture is like a gossip network. When something happens (order placed!), it broadcasts the news.",{"title":248,"path":249,"acronym":7,"category":8,"difficulty":31,"description":250},"Event-Driven Microservices","\u002Fterms\u002Fe\u002Fevent-driven-microservices","Event-driven microservices communicate by publishing events instead of calling each other directly. 'Hey, an order was placed!",{"title":252,"path":253,"acronym":7,"category":8,"difficulty":31,"description":254},"Eventual Consistency Pattern","\u002Fterms\u002Fe\u002Feventual-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.",{"title":256,"path":257,"acronym":7,"category":8,"difficulty":22,"description":258},"Facade Pattern","\u002Fterms\u002Ff\u002Ffacade-pattern","Facade Pattern is like the front desk at a hotel.",{"title":260,"path":261,"acronym":7,"category":8,"difficulty":9,"description":262},"Factory Pattern","\u002Fterms\u002Ff\u002Ffactory-pattern","You want to create a 'notification' object but it might be an EmailNotification, SMSNotification, or PushNotification depending on user preferences.",{"title":264,"path":265,"acronym":7,"category":8,"difficulty":9,"description":266},"Feature Envy","\u002Fterms\u002Ff\u002Ffeature-envy","Feature envy is when a function spends more time poking around in another class's data than its own.",{"title":268,"path":269,"acronym":7,"category":8,"difficulty":9,"description":270},"Feature Flag Rot","\u002Fterms\u002Ff\u002Ffeature-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.",{"title":272,"path":273,"acronym":7,"category":8,"difficulty":31,"description":274},"Feature Store","\u002Fterms\u002Ff\u002Ffeature-store","A feature store is like a shared pantry for ML features.",{"title":276,"path":277,"acronym":7,"category":8,"difficulty":9,"description":278},"Gateway Pattern","\u002Fterms\u002Fg\u002Fgateway-pattern","A gateway wraps access to an external system behind a nice, clean interface.",{"title":280,"path":281,"acronym":7,"category":8,"difficulty":9,"description":282},"God Object","\u002Fterms\u002Fg\u002Fgod-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.",{"title":284,"path":285,"acronym":7,"category":8,"difficulty":22,"description":286},"Golden Hammer","\u002Fterms\u002Fg\u002Fgolden-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?",{"title":288,"path":289,"acronym":7,"category":8,"difficulty":31,"description":290},"Hexagonal Architecture","\u002Fterms\u002Fh\u002Fhexagonal-architecture","Hexagonal Architecture (aka Ports and Adapters) treats your app like a USB hub.",{"title":292,"path":293,"acronym":7,"category":8,"difficulty":22,"description":294},"Inheritance","\u002Fterms\u002Fi\u002Finheritance","Inheritance lets a class take on all the properties and behaviors of another class.",{"title":296,"path":297,"acronym":7,"category":8,"difficulty":31,"description":298},"Interactor","\u002Fterms\u002Fi\u002Finteractor","An interactor is just another name for a use case — it's the code that 'interacts' with your domain to accomplish one specific task.",{"title":300,"path":301,"acronym":7,"category":8,"difficulty":9,"description":302},"Interface Segregation","\u002Fterms\u002Fi\u002Finterface-segregation","Interface Segregation means don't force classes to implement methods they don't need.",{"title":304,"path":305,"acronym":306,"category":8,"difficulty":9,"description":307},"Inversion of Control","\u002Fterms\u002Fi\u002Finversion-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.",{"title":306,"path":309,"acronym":306,"category":8,"difficulty":9,"description":310},"\u002Fterms\u002Fi\u002Fioc","IoC is the abbreviation for Inversion of Control. It's the Hollywood Principle: 'Don't call us, we'll call you.",{"title":312,"path":313,"acronym":314,"category":8,"difficulty":22,"description":315},"KISS","\u002Fterms\u002Fk\u002Fkiss","Keep It Simple, Stupid","Don't overcomplicate things! The simplest solution that works is usually the best one.",{"title":317,"path":318,"acronym":7,"category":8,"difficulty":9,"description":319},"Legacy Tax","\u002Fterms\u002Fl\u002Flegacy-tax","Legacy tax is what you pay for maintaining old systems that nobody wants to touch.",{"title":321,"path":322,"acronym":7,"category":8,"difficulty":9,"description":323},"Liskov Substitution","\u002Fterms\u002Fl\u002Fliskov-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.",{"title":325,"path":326,"acronym":325,"category":8,"difficulty":22,"description":327},"MVC","\u002Fterms\u002Fm\u002Fmvc","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 (...",{"title":329,"path":330,"acronym":329,"category":8,"difficulty":9,"description":331},"MVVM","\u002Fterms\u002Fm\u002Fmvvm","MVVM is MVC's cooler cousin for UI-heavy apps.",{"title":333,"path":334,"acronym":7,"category":8,"difficulty":9,"description":335},"Message Broker","\u002Fterms\u002Fm\u002Fmessage-broker","A Message Broker is the post office of your microservices world.",{"title":337,"path":338,"acronym":7,"category":8,"difficulty":9,"description":339},"Message Queue","\u002Fterms\u002Fm\u002Fmessage-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.",{"title":341,"path":342,"acronym":7,"category":8,"difficulty":9,"description":343},"Micro Frontend","\u002Fterms\u002Fm\u002Fmicro-frontend","Micro frontends are microservices for the UI.",{"title":345,"path":346,"acronym":7,"category":8,"difficulty":9,"description":347},"Modular Monolith","\u002Fterms\u002Fm\u002Fmodular-monolith","Modular Monolith is the best of both worlds: one deployable app (monolith) but organized into clear, separate modules that could become microservices somed...",{"title":349,"path":350,"acronym":7,"category":8,"difficulty":9,"description":351},"Modular Monolith Pattern","\u002Fterms\u002Fm\u002Fmodular-monolith-pattern","A modular monolith is a single deployable app that's internally organized into independent modules with clear boundaries.",{"title":353,"path":354,"acronym":7,"category":8,"difficulty":31,"description":355},"Module Federation","\u002Fterms\u002Fm\u002Fmodule-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.",{"title":357,"path":358,"acronym":7,"category":8,"difficulty":9,"description":359},"Observer Pattern","\u002Fterms\u002Fo\u002Fobserver-pattern","Think of a newsletter. You (the publisher\u002Fsubject) publish content. Your subscribers (observers) automatically get notified when new content arrives.",{"title":361,"path":362,"acronym":7,"category":8,"difficulty":31,"description":363},"Onion Architecture","\u002Fterms\u002Fo\u002Fonion-architecture","Onion architecture arranges code in concentric layers like an onion. The core (domain) has no dependencies. Each outer layer depends inward, never outward.",{"title":365,"path":366,"acronym":7,"category":8,"difficulty":9,"description":367},"Open-Closed","\u002Fterms\u002Fo\u002Fopen-closed","Open-Closed means your code should be open for adding new features but closed for editing old working code.",{"title":369,"path":370,"acronym":7,"category":8,"difficulty":31,"description":371},"Outbox Pattern","\u002Fterms\u002Fo\u002Foutbox-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.",{"title":373,"path":374,"acronym":7,"category":8,"difficulty":22,"description":375},"Over-engineering","\u002Fterms\u002Fo\u002Fover-engineering","Building a rocket ship when you just need a bicycle.",{"title":377,"path":378,"acronym":7,"category":8,"difficulty":9,"description":379},"Platform Engineering","\u002Fterms\u002Fp\u002Fplatform-engineering","Platform engineering is building the roads so application developers can just drive.",{"title":381,"path":382,"acronym":7,"category":8,"difficulty":9,"description":383},"Polymorphism","\u002Fterms\u002Fp\u002Fpolymorphism","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.",{"title":385,"path":386,"acronym":7,"category":8,"difficulty":22,"description":387},"Polyrepo","\u002Fterms\u002Fp\u002Fpolyrepo","Polyrepo is the opposite of monorepo — each service or project lives in its own separate repository.",{"title":389,"path":390,"acronym":7,"category":8,"difficulty":31,"description":391},"Ports and Adapters","\u002Fterms\u002Fp\u002Fports-and-adapters","Ports and Adapters (aka Hexagonal Architecture) means your app defines 'ports' (interfaces) and the outside world connects through 'adapters.",{"title":393,"path":394,"acronym":7,"category":8,"difficulty":9,"description":395},"Premature Abstraction","\u002Fterms\u002Fp\u002Fpremature-abstraction","Premature abstraction is creating a reusable, generic solution before you have enough examples to know what the abstraction should look like.",{"title":397,"path":398,"acronym":7,"category":8,"difficulty":9,"description":399},"Presenter","\u002Fterms\u002Fp\u002Fpresenter","A presenter takes raw data from your use case and formats it for display.",{"title":401,"path":402,"acronym":7,"category":8,"difficulty":31,"description":403},"Process Manager","\u002Fterms\u002Fp\u002Fprocess-manager","A process manager is the project coordinator for long-running workflows.",{"title":405,"path":406,"acronym":7,"category":8,"difficulty":31,"description":407},"Projection","\u002Fterms\u002Fp\u002Fprojection","A projection transforms raw events into a useful read model. Every time an 'OrderPlaced' event fires, the projection updates the dashboard table.",{"title":409,"path":410,"acronym":7,"category":8,"difficulty":9,"description":411},"Proxy Pattern","\u002Fterms\u002Fp\u002Fproxy-pattern","A Proxy is a stand-in for a real object that controls access to it.",{"title":413,"path":414,"acronym":413,"category":8,"difficulty":9,"description":415},"Pub\u002FSub","\u002Fterms\u002Fp\u002Fpub-sub","Pub\u002FSub is like a newspaper service. Publishers write articles and drop them off.",{"title":417,"path":418,"acronym":7,"category":8,"difficulty":31,"description":419},"Read Model","\u002Fterms\u002Fr\u002Fread-model","A read model is a database view optimized specifically for reading — denormalized, pre-computed, and shaped exactly how the UI needs it.",{"title":421,"path":422,"acronym":7,"category":8,"difficulty":9,"description":423},"Refactor Fatigue","\u002Fterms\u002Fr\u002Frefactor-fatigue","Refactor fatigue is when your team has refactored the same module four times in a year and nobody wants to touch it again.",{"title":425,"path":426,"acronym":7,"category":8,"difficulty":9,"description":427},"Refactor Tax","\u002Fterms\u002Fr\u002Frefactor-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.",{"title":429,"path":430,"acronym":7,"category":8,"difficulty":22,"description":431},"Refactoring","\u002Fterms\u002Fr\u002Frefactoring","Refactoring is improving the internal structure of code WITHOUT changing what it does from the outside.",{"title":433,"path":434,"acronym":7,"category":8,"difficulty":9,"description":435},"Repository Pattern","\u002Fterms\u002Fr\u002Frepository-pattern","Repository Pattern puts a layer between your business logic and your database, so your business code never writes SQL directly.",{"title":437,"path":438,"acronym":7,"category":8,"difficulty":9,"description":439},"Repository Pattern (Architecture)","\u002Fterms\u002Fr\u002Frepository-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.",{"title":441,"path":442,"acronym":7,"category":8,"difficulty":31,"description":443},"Resumable Workflow","\u002Fterms\u002Fr\u002Fresumable-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.",{"title":445,"path":446,"acronym":7,"category":8,"difficulty":22,"description":447},"Retry Pattern","\u002Fterms\u002Fr\u002Fretry-pattern","Retry Pattern is trying something again when it fails, because sometimes failures are temporary (network hiccup, brief overload).",{"title":449,"path":450,"acronym":7,"category":8,"difficulty":9,"description":451},"Rewrite Syndrome","\u002Fterms\u002Fr\u002Frewrite-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.",{"title":453,"path":454,"acronym":455,"category":8,"difficulty":9,"description":456},"SOA","\u002Fterms\u002Fs\u002Fsoa","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...",{"title":458,"path":459,"acronym":458,"category":8,"difficulty":9,"description":460},"SOLID","\u002Fterms\u002Fs\u002Fsolid","SOLID is five rules for writing code that doesn't turn into a nightmare over time. Each letter stands for a different rule.",{"title":462,"path":463,"acronym":7,"category":8,"difficulty":31,"description":464},"Saga","\u002Fterms\u002Fs\u002Fsaga","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.",{"title":466,"path":467,"acronym":7,"category":8,"difficulty":31,"description":468},"Saga Pattern","\u002Fterms\u002Fs\u002Fsaga-pattern","The saga pattern is how you handle transactions that span multiple services. In a monolith, you'd wrap everything in one database transaction.",{"title":470,"path":471,"acronym":7,"category":8,"difficulty":9,"description":472},"Screaming Architecture","\u002Fterms\u002Fs\u002Fscreaming-architecture","Screaming architecture means your folder structure screams what the app DOES, not what framework it uses.",{"title":474,"path":475,"acronym":7,"category":8,"difficulty":9,"description":476},"Second System Effect","\u002Fterms\u002Fs\u002Fsecond-system-effect","The second system effect is when you rewrite a successful system from scratch and massively over-engineer it.",{"title":478,"path":479,"acronym":7,"category":8,"difficulty":31,"description":480},"Self-Contained System","\u002Fterms\u002Fs\u002Fself-contained-system","A self-contained system (SCS) is a mini-application that includes its own UI, backend, and database.",{"title":482,"path":483,"acronym":7,"category":8,"difficulty":22,"description":484},"Separation of Concerns","\u002Fterms\u002Fs\u002Fseparation-of-concerns","Separation of Concerns means different parts of your code should handle different concerns and not step on each other's toes.",{"title":486,"path":487,"acronym":7,"category":8,"difficulty":9,"description":488},"Service Layer","\u002Fterms\u002Fs\u002Fservice-layer","Service Layer is the middle manager of your app. Controllers receive HTTP requests and hand off to services.",{"title":455,"path":490,"acronym":453,"category":8,"difficulty":9,"description":491},"\u002Fterms\u002Fs\u002Fservice-oriented-architecture","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.",{"title":493,"path":494,"acronym":7,"category":8,"difficulty":9,"description":495},"Shared Database","\u002Fterms\u002Fs\u002Fshared-database","Shared database is when multiple services all read from and write to the same database.",{"title":497,"path":498,"acronym":7,"category":8,"difficulty":9,"description":499},"Shotgun Surgery","\u002Fterms\u002Fs\u002Fshotgun-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.",{"title":501,"path":502,"acronym":7,"category":8,"difficulty":31,"description":503},"Sidecar Pattern","\u002Fterms\u002Fs\u002Fsidecar-pattern","The sidecar pattern attaches a helper container to your main app, like a motorcycle sidecar.",{"title":505,"path":506,"acronym":7,"category":8,"difficulty":22,"description":507},"Single Responsibility","\u002Fterms\u002Fs\u002Fsingle-responsibility","Single Responsibility means every class or function should do ONE thing and do it well.",{"title":509,"path":510,"acronym":7,"category":8,"difficulty":22,"description":511},"Singleton","\u002Fterms\u002Fs\u002Fsingleton","Singleton is a pattern that ensures only ONE instance of a class exists in your entire app.",{"title":513,"path":514,"acronym":7,"category":8,"difficulty":22,"description":515},"Singleton Pattern","\u002Fterms\u002Fs\u002Fsingleton-pattern","Singleton says: 'this class shall have exactly ONE instance, ever.' Database connections, config objects, loggers — things you only want created once.",{"title":517,"path":518,"acronym":7,"category":8,"difficulty":31,"description":519},"Strangler Fig Pattern","\u002Fterms\u002Fs\u002Fstrangler-fig-pattern","Replacing a legacy system piece by piece instead of doing a risky big-bang rewrite.",{"title":521,"path":522,"acronym":7,"category":8,"difficulty":9,"description":523},"Strategy Pattern","\u002Fterms\u002Fs\u002Fstrategy-pattern","You're writing a sorter and want to sort by price, name, or date depending on user choice.",{"title":525,"path":526,"acronym":7,"category":8,"difficulty":9,"description":527},"Tech Debt Snowball","\u002Fterms\u002Ft\u002Ftech-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...",{"title":529,"path":530,"acronym":7,"category":8,"difficulty":9,"description":531},"Toggle Debt","\u002Fterms\u002Ft\u002Ftoggle-debt","Toggle debt is the pile of unused feature flags slowly suffocating your codebase. Every 'if (flag)' branch is cognitive load.",{"title":533,"path":534,"acronym":7,"category":8,"difficulty":9,"description":535},"Toggle Hygiene","\u002Fterms\u002Ft\u002Ftoggle-hygiene","Toggle hygiene is the practice of cleaning up feature flags after they've served their purpose.",{"title":537,"path":538,"acronym":7,"category":8,"difficulty":9,"description":539},"Turducken Architecture","\u002Fterms\u002Ft\u002Fturducken-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...",{"title":541,"path":542,"acronym":7,"category":8,"difficulty":9,"description":543},"Ubiquitous Language","\u002Fterms\u002Fu\u002Fubiquitous-language","Ubiquitous language means developers and business people use the EXACT SAME words for the same things.",{"title":545,"path":546,"acronym":7,"category":8,"difficulty":9,"description":547},"Use Case","\u002Fterms\u002Fu\u002Fuse-case","A use case is a single thing a user can do with your system — 'Place Order', 'Register Account', 'Cancel Subscription.",{"title":549,"path":550,"acronym":7,"category":8,"difficulty":9,"description":551},"Vertical Slice Architecture","\u002Fterms\u002Fv\u002Fvertical-slice-architecture","Vertical slice architecture organizes code by feature, not by layer.",{"title":553,"path":554,"acronym":7,"category":8,"difficulty":31,"description":555},"Write Model","\u002Fterms\u002Fw\u002Fwrite-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.",{"title":557,"path":558,"acronym":559,"category":8,"difficulty":22,"description":560},"YAGNI","\u002Fterms\u002Fy\u002Fyagni","You Aren't Gonna Need It","Don't build stuff you don't need right now.",1776518250974]