Veterans Track

Introduction to Code Architectures

Code architecture from a software architect's lens — covering structure, SOLID principles, patterns, architectural styles, frontend architecture, dependency management, testing, and governance.

Domain 01 · Code Structure & Organisation

Structure & Organisation

Folder layout, module boundaries, package-by-feature vs package-by-layer, monorepo vs polyrepo strategy, and naming conventions.

Package-by-featureMonorepoModule boundaries

SOLID Principles

Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion.

SRPOCPLSPISPDIP

Code Quality Standards

Linting, static analysis, cyclomatic complexity limits, code coverage targets, and technical debt tracking.

ESLintStatic analysisCoverage

API Design Standards

REST, GraphQL, gRPC, versioning strategy, error contracts, pagination, and backward compatibility.

RESTGraphQLgRPCVersioning

Domain 02 · Design Patterns by Language & Layer

Java / Kotlin Patterns

GoF patterns, sealed classes, data classes, coroutines, and extension functions.

GoFSealed classesCoroutines

JavaScript / TypeScript Patterns

Module pattern, observer, singleton, pure functions, discriminated unions, and branded types.

ModulesCompositionDiscriminated unions

UI Design Patterns

Component composition, compound components, render props, hooks, slots, and design tokens.

HooksComponentsDesign tokens

Database Code Patterns

Repository, DAO, unit-of-work, migrations, CQRS, connection pooling, and N+1 prevention.

RepositoryDAOCQRS

Deployment Code Patterns

Terraform, Pulumi, Helm, GitOps, secret injection, and pipeline-as-code.

TerraformHelmGitOps

Concurrency & Async Patterns

Async/await, reactive streams, actor model, backpressure, and thread pool sizing.

AsyncReactiveBackpressure

Domain 03 · Architectural Styles & Patterns

Hexagonal Architecture

Ports-and-adapters pattern separating domain logic from UI, database, and messaging concerns.

PortsAdaptersDomain isolation

Clean Architecture

Entities, use cases, interface adapters, and frameworks with the dependency rule.

EntitiesUse casesDependency rule

MVC

Model-View-Controller separation for data, presentation, and request handling.

ModelViewController

MVVM

ViewModel exposes observable state and commands while the view renders reactively.

Observable stateBindingCommands

Pub-Sub

Event producers and consumers decoupled through brokers such as Kafka, RabbitMQ, or SNS.

BrokerTopicsDLQ

Event Sourcing & CQRS

Immutable event log with separated read and write models.

Event storeCQRSProjections

Domain-Driven Design

Bounded contexts, aggregates, domain events, value objects, and ubiquitous language.

DDDAggregatesBounded context

Layered & Onion Architecture

N-tier layering and inward dependency rules for enterprise systems.

N-tierOnionLayers

Domain 04 · Frontend Architecture

Micro Frontend

Independently deployable UI modules with shared design system and routing contracts.

Module federationWeb componentsDesign system

State Management

Global vs local state, server state, client state, unidirectional flow, and state machines.

ReduxZustandReact QueryXState

Rendering Strategy

CSR, SSR, SSG, ISR, streaming SSR, islands architecture, and edge rendering.

SSRSSGISREdge

Design System & Tokens

Shared component library, design tokens, Storybook, and accessibility governance.

StorybookTokensWCAG

Domain 05 · Dependency Management, Inversion & Metadata

Dependency Injection

Constructor injection, DI containers, injection scopes, and circular dependency detection.

Constructor injectionSpringInversifyJS

Metadata

Annotations and decorators for AOP, validation, serialization, and ORM mapping.

AnnotationsDecoratorsAOP

Dependency Graph Analysis

Coupling metrics, instability index, ArchUnit, and Dependency Cruiser checks.

CouplingArchUnitDependency Cruiser

Quantum Fitment

Smallest independently deployable unit with cohesion, fitness functions, and deployment pipeline.

Architecture quantumCohesionFitness functions

Domain 06 · Cross-Cutting Concerns

Error Handling Strategy

Result/Either types, global exception handlers, structured error codes, and retry policies.

ResultEitherRetry policy

Logging & Observability

Structured logs, correlation IDs, distributed tracing, and OpenTelemetry boundaries.

JSON logsTrace IDOpenTelemetry

Security Patterns in Code

Input validation, output encoding, secure deserialization, and secrets management.

ValidationEncodingSecrets

Configuration Management

Externalized configuration, environment overrides, feature flags, and typed config objects.

12-factorFeature flagsTyped config

Internationalisation

Resource bundles, locale-aware formatting, RTL support, and translation workflow.

i18nl10nRTL

Caching Strategy in Code

In-process cache, distributed cache, cache-aside, write-through, and invalidation.

RedisLRUCache-aside

Domain 07 · Testing Architecture

Links to Testing Architecture

Every architectural pattern has a testability implication and must align with the test pyramid.

UnitIntegrationE2E

Testability Patterns

Mocks, stubs, spies, fakes, test data builders, object mother, and test containers.

MocksStubsTestcontainers

Architecture Fitness Functions

Automated checks for dependency direction, layer boundaries, naming, and coupling thresholds.

ArchUnitCI gateLayer tests

TDD & BDD

TDD shapes API and seam design; BDD connects domain language to executable specifications.

TDDBDDGherkin

Domain 08 · Architecture Governance & Documentation

Architecture Decision Records

Version-controlled records capturing context, decision, and consequences.

ADRDecision contextVersioned

Anti-Pattern Catalogue

God class, big ball of mud, circular dependencies, anemic model, and shotgun surgery.

God classCircular dependencyBig ball of mud

Refactoring Patterns

Strangler fig, branch-by-abstraction, expand-contract, and flag-gated refactoring.

Strangler figExpand-contractFeature flags

Architecture as Code

C4, Structurizr, PlantUML, and Mermaid diagrams living with source code.

C4MermaidPlantUML