diff --git a/architectures/backend-for-frontend/folder-structure.md b/architectures/backend-for-frontend/folder-structure.md index b5cd004..5acbcbf 100644 --- a/architectures/backend-for-frontend/folder-structure.md +++ b/architectures/backend-for-frontend/folder-structure.md @@ -48,6 +48,22 @@ src/ └── index.ts ``` +```mermaid +classDiagram + src --|> handlers + handlers --|> userDashboardHandler_ts + src --|> config + src --|> index_ts + class src:::component + class handlers:::component + note for userDashboardHandler_ts "contains routing, business logic, and API calls" + class userDashboardHandler_ts:::component + class config:::component + class index_ts:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + ### ⚠️ Problem Placing routing, data aggregation, and downstream API calls in a single handler creates a monolithic structure within the BFF. It makes testing difficult, limits code reuse, and violates the single responsibility principle. @@ -68,5 +84,36 @@ src/ └── app.ts ``` +```mermaid +classDiagram + src --|> routes + routes --|> dashboard_routes_ts + src --|> controllers + controllers --|> dashboard_controller_ts + src --|> services + services --|> aggregator_service_ts + src --|> clients + clients --|> user_client_ts + clients --|> order_client_ts + src --|> types + types --|> dtos_ts + src --|> app_ts + class src:::component + class routes:::component + class dashboard_routes_ts:::component + class controllers:::component + class dashboard_controller_ts:::component + class services:::component + class aggregator_service_ts:::component + class clients:::component + class user_client_ts:::component + class order_client_ts:::component + class types:::component + class dtos_ts:::component + class app_ts:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + ### 🚀 Solution Separate responsibilities clearly. `routes` handle HTTP concerns. `controllers` parse requests and format responses. `services` (or aggregators) orchestrate the calls to multiple downstream microservices. `clients` isolate the network logic (HTTP/gRPC) for communicating with downstream microservices. This structure enhances testability and maintainability. diff --git a/architectures/event-sourcing/folder-structure.md b/architectures/event-sourcing/folder-structure.md index ec30265..82d1174 100644 --- a/architectures/event-sourcing/folder-structure.md +++ b/architectures/event-sourcing/folder-structure.md @@ -29,3 +29,35 @@ src/ └── 📁 infrastructure/ # Event Store bindings, Repositories, Message Bus └── EventStoreRepository.ts ``` + +```mermaid +classDiagram + src --|> commands + commands --|> CreateOrderCommand_ts + src --|> events + events --|> OrderCreatedEvent_ts + src --|> aggregates + aggregates --|> OrderAggregate_ts + src --|> projections + projections --|> OrderReadModelProjector_ts + src --|> infrastructure + infrastructure --|> EventStoreRepository_ts + class src:::component + note for commands "Intentions to change state" + class commands:::component + class CreateOrderCommand_ts:::component + note for events "Facts that have occurred" + class events:::component + class OrderCreatedEvent_ts:::component + note for aggregates "Domain entities that process commands and emit events" + class aggregates:::component + class OrderAggregate_ts:::component + note for projections "Listeners that update read models based on events" + class projections:::component + class OrderReadModelProjector_ts:::component + note for infrastructure "Event Store bindings, Repositories, Message Bus" + class infrastructure:::component + class EventStoreRepository_ts:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` diff --git a/architectures/hexagonal-architecture/folder-structure.md b/architectures/hexagonal-architecture/folder-structure.md index 30f2dde..a28a47d 100644 --- a/architectures/hexagonal-architecture/folder-structure.md +++ b/architectures/hexagonal-architecture/folder-structure.md @@ -65,6 +65,65 @@ src/ └── 📁 external/ # 3rd Party APIs (SendGrid, Stripe) └── SendGridEmailSender.ts ``` + +```mermaid +classDiagram + src --|> core + core --|> domain + domain --|> User_ts + domain --|> AccountId_ts + core --|> ports + ports --|> in + in --|> CreateUserUseCase_ts + ports --|> out + out --|> UserRepositoryPort_ts + out --|> EmailSenderPort_ts + src --|> adapters + adapters --|> primary + primary --|> http + http --|> UserController_ts + primary --|> cli + adapters --|> secondary + secondary --|> database + database --|> PostgresUserRepository_ts + secondary --|> external + external --|> SendGridEmailSender_ts + class src:::component + note for core "The Heart of the System (No External Tech" + class core:::component + note for domain "Entities, Value Objects, Business Rules" + class domain:::component + class User_ts:::component + class AccountId_ts:::component + note for ports "Interfaces defining interactions" + class ports:::component + note for in "Primary Ports (Use Cases / Commands" + class in:::component + class CreateUserUseCase_ts:::component + note for out "Secondary Ports (SPIs / Repositories" + class out:::component + class UserRepositoryPort_ts:::component + class EmailSenderPort_ts:::component + note for adapters "Concrete implementations" + class adapters:::component + note for primary "Entry Points (Driving Adapters" + class primary:::component + note for http "REST Controllers / Express Routes" + class http:::component + class UserController_ts:::component + note for cli "Console Commands" + class cli:::component + note for secondary "Exit Points (Driven Adapters" + class secondary:::component + note for database "ORMs (TypeORM, Prisma" + class database:::component + class PostgresUserRepository_ts:::component + note for external "3rd Party APIs (SendGrid, Stripe" + class external:::component + class SendGridEmailSender_ts:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` ## ⛔ Boundary Constraints 1. **Isolation in `core/`:** Code inside `core/` is forbidden from importing modules from `adapters/`. diff --git a/architectures/micro-frontends/folder-structure.md b/architectures/micro-frontends/folder-structure.md index 2e5133a..089e495 100644 --- a/architectures/micro-frontends/folder-structure.md +++ b/architectures/micro-frontends/folder-structure.md @@ -29,6 +29,23 @@ monorepo/ │ ├── mfe-auth/ (imports directly from app-shell) ``` +```mermaid +classDiagram + monorepo --|> packages + packages --|> shared_ui + packages --|> app_shell + packages --|> mfe_auth + class monorepo:::component + class packages:::component + note for shared_ui "contains business logic!" + class shared_ui:::component + class app_shell:::component + note for mfe_auth "imports directly from app-shell" + class mfe_auth:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + #### ⚠️ Problem Storing business logic in shared libraries or directly importing cross-package code defeats the purpose of micro-frontends. It binds deployment cycles together, meaning a change in `shared-ui` forces all dependent MFEs to re-test and redeploy simultaneously. @@ -44,6 +61,32 @@ workspace/ │ └── event-bus/ (Agnostic communication contract types) ``` +```mermaid +classDiagram + workspace --|> apps + apps --|> app_shell + apps --|> mfe_catalog + apps --|> mfe_checkout + workspace --|> packages + packages --|> design_system + packages --|> event_bus + class workspace:::component + class apps:::component + note for app_shell "Entry point, Router, Module Federation config" + class app_shell:::component + note for mfe_catalog "Independent application" + class mfe_catalog:::component + note for mfe_checkout "Independent application" + class mfe_checkout:::component + class packages:::component + note for design_system "Pure, dumb UI components only" + class design_system:::component + note for event_bus "Agnostic communication contract types" + class event_bus:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + ### Structural Comparison: Monorepo vs Polyrepo for MFEs diff --git a/architectures/readme.md b/architectures/readme.md index 266a53a..eb84527 100644 --- a/architectures/readme.md +++ b/architectures/readme.md @@ -102,6 +102,31 @@ src/ └── 📁 shared/ # Reusable code (UI-components, API, utils) ``` +```mermaid +classDiagram + src --|> app + src --|> pages + src --|> widgets + src --|> features + src --|> entities + src --|> shared + class src:::component + note for app "Global app setup (Global Store, Global CSS, Router init" + class app:::component + note for pages "Pages and Routing" + class pages:::component + note for widgets "Complex, independent UI blocks (Header, Footer" + class widgets:::component + note for features "Business-value user actions (UserAuth, AddToCart" + class features:::component + note for entities "Core business entities (User, Product" + class entities:::component + note for shared "Reusable code (UI-components, API, utils" + class shared:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** React, Vue, Angular - **Languages:** TypeScript @@ -142,6 +167,25 @@ src/ └── 📁 infrastructure/ # The outside world: DB Repositories, Frameworks, UI ``` +```mermaid +classDiagram + src --|> domain + src --|> usecases + src --|> interface_adapters + src --|> infrastructure + class src:::component + note for domain "The heart of the system: Entities and Interfaces" + class domain:::component + note for usecases "Business Scenarios (Interactors" + class usecases:::component + note for interface_adapters "Controllers, Presenters, Gateways (Data translators" + class interface_adapters:::component + note for infrastructure "The outside world: DB Repositories, Frameworks, UI" + class infrastructure:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** NestJS, Spring Boot - **Languages:** C#, Java, TypeScript @@ -182,6 +226,25 @@ src/ └── 📁 routes/ # API endpoint definitions (URLs) ``` +```mermaid +classDiagram + src --|> models + src --|> views + src --|> controllers + src --|> routes + class src:::component + note for models "Database schemas and data manipulation methods" + class models:::component + note for views "Templates (HTML, Pug, EJS" + class views:::component + note for controllers "HTTP request handlers bridging Model and View" + class controllers:::component + note for routes "API endpoint definitions (URLs" + class routes:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** Express.js, Ruby on Rails, Laravel, Django - **Languages:** Ruby, PHP, Python @@ -225,6 +288,28 @@ microservices-cluster/ └── 📁 api-gateway/ # Router for all external client requests ``` +```mermaid +classDiagram + microservices_cluster --|> auth_service + microservices_cluster --|> order_service + microservices_cluster --|> payment_service + microservices_cluster --|> notification_service + microservices_cluster --|> api_gateway + class microservices_cluster:::component + note for auth_service "Authentication Microservice (w/ PostgreSQL" + class auth_service:::component + note for order_service "Orders Microservice (w/ MongoDB" + class order_service:::component + note for payment_service "Transaction logic layer" + class payment_service:::component + note for notification_service "Email and Push notifications" + class notification_service:::component + note for api_gateway "Router for all external client requests" + class api_gateway:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** Spring Boot (Netflix OSS), NestJS (Microservices module) - **Languages:** Go, Java, Node.js @@ -268,6 +353,31 @@ src/ └── 📁 secondary/ # MongoAdapter.ts, PostgresAdapter.ts (System Exit) ``` +```mermaid +classDiagram + src --|> core + core --|> ports + core --|> domain + src --|> adapters + adapters --|> primary + adapters --|> secondary + class src:::component + note for core "Ports (Interfaces" + class core:::component + note for ports "IUserRepository.ts" + class ports:::component + note for domain "Business rules for the application" + class domain:::component + note for adapters "Concrete implementations (Adapters" + class adapters:::component + note for primary "HTTP Controllers, GraphQL (System Entry" + class primary:::component + note for secondary "MongoAdapter.ts, PostgresAdapter.ts (System Exit" + class secondary:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** Any strictly-typed IoC frameworks. - **Languages:** TypeScript, C# @@ -309,6 +419,32 @@ src/ └── ... ``` +```mermaid +classDiagram + src --|> identity_access + identity_access --|> domain + identity_access --|> application + identity_access --|> infrastructure + src --|> content_management + content_management --|> domain_1 + content_management --|> ___ + class src:::component + note for identity_access "Bounded Context (Auth domain" + class identity_access:::component + note for domain "Aggregates, Value Objects, Entities" + class domain:::component + note for application "Command Handlers (Business Use Cases" + class application:::component + note for infrastructure "DB Repositories" + class infrastructure:::component + note for content_management "Bounded Context (Articles domain" + class content_management:::component + class domain_1:::component + class ___:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** Complex Backend ERP or Banking systems. - **Languages:** Highly-typed OOP languages (Java, C#, TypeScript). @@ -348,6 +484,25 @@ src/ └── 📁 brokers/ # Connection configurations to message brokers ``` +```mermaid +classDiagram + src --|> publishers + src --|> subscribers + src --|> events + src --|> brokers + class src:::component + note for publishers "Generate events (e.g., OrderPayedEvent" + class publishers:::component + note for subscribers "Listen to events (e.g., NotifyUserListener" + class subscribers:::component + note for events "Type definitions for event payloads" + class events:::component + note for brokers "Connection configurations to message brokers" + class brokers:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks/Platforms:** Node.js, Spring Cloud. - **Tools/Libraries:** Apache Kafka, RabbitMQ, Redis Pub/Sub, AWS EventBridge. @@ -386,6 +541,28 @@ project-functions/ └── serverless.yml # Deployment config for AWS / GCP (Serverless Framework) ``` +```mermaid +classDiagram + project_functions --|> user_signup + user_signup --|> index_js + user_signup --|> package_json + project_functions --|> process_payment + project_functions --|> serverless_yml + class project_functions:::component + note for user_signup "Cloud Function (Lambda" + class user_signup:::component + note for index_js "Function entry point (exports.handler" + class index_js:::component + note for package_json "Dependencies specific to this function alone" + class package_json:::component + note for process_payment "Cloud Function to process Stripe payments" + class process_payment:::component + note for serverless_yml "Deployment config for AWS / GCP (Serverless Framework" + class serverless_yml:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** Serverless Framework, AWS SAM. Clouds: Firebase, Vercel Functions. - **Languages:** Node.js, Python, Go (Languages with O(1) or O(n) cold starts). @@ -424,6 +601,25 @@ monolith-app/ └── 📁 workers/ # Background processes (e.g., Queue processing) ``` +```mermaid +classDiagram + monolith_app --|> public + monolith_app --|> config + monolith_app --|> src + monolith_app --|> workers + class monolith_app:::component + note for public "Static files for the server (incl. bundled React UI" + class public:::component + note for config "Environment configurations (DB, S3" + class config:::component + note for src "All business logic (Controllers, Services" + class src:::component + note for workers "Background processes (e.g., Queue processing" + class workers:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** Django, Ruby on Rails, NestJS (without microservices). - **Languages:** Python, PHP, Ruby. @@ -467,6 +663,30 @@ src/ └── GetUserHandler.ts # Logic: Reads from a blazing fast DB (Elastic/Redis) ``` +```mermaid +classDiagram + src --|> commands + commands --|> CreateUserCommand_ts + commands --|> CreateUserHandler_ts + src --|> queries + queries --|> GetUserQuery_ts + queries --|> GetUserHandler_ts + class src:::component + note for commands "Mutates system state" + class commands:::component + note for CreateUserCommand_ts "The incoming data structure" + class CreateUserCommand_ts:::component + note for CreateUserHandler_ts "Logic: Writes to the heavy Main DB (Postgres" + class CreateUserHandler_ts:::component + note for queries "Exclusively reading data" + class queries:::component + class GetUserQuery_ts:::component + note for GetUserHandler_ts "Logic: Reads from a blazing fast DB (Elastic/Redis" + class GetUserHandler_ts:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** NestJS (`@nestjs/cqrs`), MediatR (.NET). - **Languages:** Strongly-typed languages (TypeScript, C#). @@ -510,6 +730,32 @@ workspace/ └── 📁 event-bus/ # Agnostic communication contract types ``` +```mermaid +classDiagram + workspace --|> apps + apps --|> app_shell + apps --|> mfe_catalog + apps --|> mfe_checkout + workspace --|> packages + packages --|> design_system + packages --|> event_bus + class workspace:::component + class apps:::component + note for app_shell "Entry point, Router, Module Federation config" + class app_shell:::component + note for mfe_catalog "Independent application" + class mfe_catalog:::component + note for mfe_checkout "Independent application" + class mfe_checkout:::component + class packages:::component + note for design_system "Pure, dumb UI components only" + class design_system:::component + note for event_bus "Agnostic communication contract types" + class event_bus:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** React, Vue, Angular. - **Languages:** TypeScript. @@ -556,6 +802,25 @@ src/ └── event-store/ ``` +```mermaid +classDiagram + src --|> commands + src --|> aggregates + src --|> events + src --|> projections + src --|> infrastructure + infrastructure --|> event_store + class src:::component + class commands:::component + class aggregates:::component + class events:::component + class projections:::component + class infrastructure:::component + class event_store:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + - **When to use:** When you need a complete audit log, temporal queries, or when decoupling read and write models is critical. - **Patterns / Principles:** Event Log, CQRS, Projections, Snapshots. @@ -596,6 +861,25 @@ src/ └── 📁 clients/ # Logic to call downstream Microservices ``` +```mermaid +classDiagram + src --|> routes + src --|> controllers + src --|> services + src --|> clients + class src:::component + note for routes "Route definitions mapped to controllers" + class routes:::component + note for controllers "Handles incoming requests from specific clients" + class controllers:::component + note for services "Aggregates data from multiple downstream APIs" + class services:::component + note for clients "Logic to call downstream Microservices" + class clients:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** NestJS, Express.js. - **Languages:** TypeScript, Node.js. @@ -642,6 +926,22 @@ src/ └── 📁 grid-storage/ # In-Memory Data Grid operations ``` +```mermaid +classDiagram + src --|> processing_units + src --|> virtual_middleware + src --|> grid_storage + class src:::component + note for processing_units "Independent logic components" + class processing_units:::component + note for virtual_middleware "Handles messaging and grid routing" + class virtual_middleware:::component + note for grid_storage "In-Memory Data Grid operations" + class grid_storage:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** Hazelcast, Apache Ignite, GigaSpaces. - **Languages:** Java, C#, Go. @@ -687,6 +987,22 @@ src/ └── 📁 memory/ # Shared context and validation schemas ``` +```mermaid +classDiagram + src --|> orchestrator + src --|> workers + src --|> memory + class src:::component + note for orchestrator "Main coordinator agent" + class orchestrator:::component + note for workers "Specialized worker agents (Planner, Coder, Reviewer" + class workers:::component + note for memory "Shared context and validation schemas" + class memory:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** LangChain, AutoGen, CrewAI. - **Languages:** Python, TypeScript. @@ -715,6 +1031,22 @@ src/ └── 📁 shared/ # Data types and common utilities ``` +```mermaid +classDiagram + src --|> core + src --|> plugins + src --|> shared + class src:::component + note for core "Core system orchestrator and registry interfaces" + class core:::component + note for plugins "Independent modules implementing core interfaces" + class plugins:::component + note for shared "Data types and common utilities" + class shared:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + **Best Compatibility:** - **Frameworks:** Eclipse, VS Code, Webpack, Babel. - **Languages:** TypeScript, Java, Python. diff --git a/architectures/space-based-architecture/folder-structure.md b/architectures/space-based-architecture/folder-structure.md index deae6fb..bb441a6 100644 --- a/architectures/space-based-architecture/folder-structure.md +++ b/architectures/space-based-architecture/folder-structure.md @@ -39,6 +39,57 @@ src/ └── recovery/ ``` +```mermaid +classDiagram + src --|> api_gateway + api_gateway --|> routes + api_gateway --|> middleware + src --|> middleware_1 + middleware_1 --|> load_balancer + middleware_1 --|> data_router + src --|> processing_units + processing_units --|> auth_unit + auth_unit --|> logic + auth_unit --|> data_access + processing_units --|> catalog_unit + catalog_unit --|> logic_1 + catalog_unit --|> data_access_1 + src --|> data_grid + data_grid --|> schemas + data_grid --|> config + src --|> data_pumps + data_pumps --|> writers + data_pumps --|> recovery + class src:::component + note for api_gateway "Routing and basic validation" + class api_gateway:::component + class routes:::component + class middleware:::component + note for middleware_1 "Virtualized middleware for processing unit routing" + class middleware_1:::component + class load_balancer:::component + class data_router:::component + note for processing_units "Independent processing components" + class processing_units:::component + class auth_unit:::component + class logic:::component + note for data_access "Communicates with IMDG" + class data_access:::component + class catalog_unit:::component + class logic_1:::component + class data_access_1:::component + note for data_grid "IMDG configuration and schema definitions" + class data_grid:::component + class schemas:::component + class config:::component + note for data_pumps "Background services syncing IMDG to DB" + class data_pumps:::component + class writers:::component + class recovery:::component + classDef component fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000; + classDef default fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px,color:#000; +``` + ## Layering Logic - **api-gateway:** The initial entry point. Minimal logic. diff --git a/sitemap.xml b/sitemap.xml index b60e303..997410a 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -5,775 +5,829 @@ http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> https://beginwebdev2002.github.io/best-practise/ - 2026-04-15 + 2026-05-04 daily 1.0 https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-context-injection-pipelines - 2026-04-06 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-context-pruning - 2026-04-14 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-dynamic-context-pruning - 2026-04-14 + 2026-05-04 + weekly + 0.8 + + + https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-event-driven-orchestration + 2026-05-04 + weekly + 0.8 + + + https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-fault-tolerance-patterns + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-memory-architectures - 2026-04-06 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-multi-model-consensus - 2026-04-06 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-orchestration-patterns - 2026-04-14 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-orchestration - 2026-04-14 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-self-healing-architectures - 2026-04-02 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-semantic-routing - 2026-04-07 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-tool-calling-architectures - 2026-04-14 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-vibe-coding-state-machines - 2026-04-14 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/ai-agent-zero-trust-security-boundaries - 2026-04-15 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/antigravity-ide-vibe-coding - 2026-04-14 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/cursor-memory-structures - 2026-04-14 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/vibe-coding-agents - 2026-04-14 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/vibe-coding-autonomous-testing-patterns - 2026-04-06 + 2026-05-04 + weekly + 0.8 + + + https://beginwebdev2002.github.io/best-practise/#/docs/vibe-coding-cognitive-load-balancing + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/vibe-coding-deterministic-patterns - 2026-03-30 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/vibe-coding-dynamic-context-pruning - 2026-04-14 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/vibe-coding-multi-agent-state-sync - 2026-04-02 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/vibe-coding-predictive-context-orchestration - 2026-04-14 + 2026-05-04 + weekly + 0.8 + + + https://beginwebdev2002.github.io/best-practise/#/docs/vibe-coding-self-reflection-loops + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/vibe-coding-swarm-intelligence-patterns - 2026-04-14 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/vibe-coding-telemetry-patterns - 2026-04-07 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/vibe-coding-zero-approval-workflows - 2026-04-14 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/docs/windsurf-vibe-coding-hints - 2026-04-14 + 2026-05-04 weekly 0.8 https://beginwebdev2002.github.io/best-practise/#/architectures/backend-for-frontend/data-flow - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/backend-for-frontend/folder-structure - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/backend-for-frontend/implementation-guide - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/backend-for-frontend/trade-offs - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/clean-architecture/data-flow - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/clean-architecture/folder-structure - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/clean-architecture/implementation-guide - 2026-04-02 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/clean-architecture/trade-offs - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/cqrs/data-flow - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/cqrs/folder-structure - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/cqrs/implementation-guide - 2026-04-02 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/cqrs/trade-offs - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/domain-driven-design/data-flow - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/domain-driven-design/folder-structure - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/domain-driven-design/implementation-guide - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/domain-driven-design/trade-offs - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/event-driven-architecture/data-flow - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/event-driven-architecture/folder-structure - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/event-driven-architecture/implementation-guide - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/event-driven-architecture/trade-offs - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/event-sourcing/data-flow - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/event-sourcing/folder-structure - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/event-sourcing/implementation-guide - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/event-sourcing/trade-offs - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/feature-sliced-design/data-flow - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/feature-sliced-design/folder-structure - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/feature-sliced-design/implementation-guide - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/feature-sliced-design/trade-offs - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/hexagonal-architecture/data-flow - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/hexagonal-architecture/folder-structure - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/hexagonal-architecture/implementation-guide - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/hexagonal-architecture/trade-offs - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/micro-frontends/data-flow - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/micro-frontends/folder-structure - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/micro-frontends/implementation-guide - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/micro-frontends/trade-offs - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/microservices/data-flow - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/microservices/folder-structure - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/microservices/implementation-guide - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/microservices/trade-offs - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/model-view-controller/data-flow - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/model-view-controller/folder-structure - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/model-view-controller/implementation-guide - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/model-view-controller/trade-offs - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/monolithic-architecture/data-flow - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/monolithic-architecture/folder-structure - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/monolithic-architecture/implementation-guide - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/monolithic-architecture/trade-offs - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/serverless/data-flow - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/serverless/folder-structure - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/serverless/implementation-guide - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/serverless/trade-offs - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/space-based-architecture/data-flow - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/space-based-architecture/folder-structure - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/space-based-architecture/implementation-guide - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/architectures/space-based-architecture/trade-offs - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/angular/advanced-performance - 2026-04-02 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/angular/architecture - 2026-04-14 + 2026-05-04 + weekly + 0.6 + + + https://beginwebdev2002.github.io/best-practise/#/frontend/angular/components-signals + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/angular/data-forms - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/angular/expert-niche - 2026-04-06 + 2026-05-04 + weekly + 0.6 + + + https://beginwebdev2002.github.io/best-practise/#/frontend/angular/reactivity + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/angular/state-management - 2026-04-02 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/angular/testing - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/design-ui/accessibility - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/design-ui/component-architecture - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/design-ui/responsive-design - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/design-ui/styling - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/javascript/async-logic - 2026-04-07 + 2026-05-04 + weekly + 0.6 + + + https://beginwebdev2002.github.io/best-practise/#/frontend/javascript/basic-syntax + 2026-05-04 + weekly + 0.6 + + + https://beginwebdev2002.github.io/best-practise/#/frontend/javascript/clean-code + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/javascript/modern-syntax - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/javascript/professional-niche - 2026-04-07 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/javascript/testing - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/qwik/performance - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/qwik/state-management - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/qwik/testing - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/react/performance - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/react/security - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/react/state-management - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/react/testing - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/solidjs/performance - 2026-04-02 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/solidjs/state-management - 2026-04-02 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/solidjs/testing - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/typescript/logic-safety - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/typescript/objects-functions - 2026-04-14 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/typescript/professional-niche - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/frontend/typescript/testing - 2026-04-06 + 2026-05-04 + weekly + 0.6 + + + https://beginwebdev2002.github.io/best-practise/#/frontend/typescript/types-interfaces + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/expressjs/architecture - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/expressjs/security-best-practices - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/graphql/architecture - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/graphql/security-best-practices - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/microservices/api-design - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/microservices/architecture - 2026-04-06 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/microservices/security-best-practices - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/mongodb/architecture - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/mongodb/database-optimization - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/mongodb/security-best-practices - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/nestjs/architecture - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/nestjs/security-best-practices - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/nodejs/architecture - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/nodejs/security-best-practices - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/postgresql/architecture - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/postgresql/database-optimization - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/postgresql/security-best-practices - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/redis/api-design - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/redis/architecture - 2026-04-15 + 2026-05-04 weekly 0.6 https://beginwebdev2002.github.io/best-practise/#/backend/redis/security-best-practices - 2026-04-15 + 2026-05-04 weekly 0.6