-
Notifications
You must be signed in to change notification settings - Fork 0
Software Architecture Design
- Composite root - wires up the dependency injection container at startup
- Transaction Script - Organizes business logic by procedures where each procedure handles a single request from the presentation layer
- Domain Model - classes and structs interconnected to model the business domain and incorporates both behavior and data.
- Table Data Gateway - An object that acts as a gateway to a database table. One instance handles all the rows in the table.
- Row Data Gateway - An object that acts as a gateway to a single record in a data source. There is one instance per row.
- Repository Pattern - creates an abstraction layer between an application's business logic and its data storage. It provides a standardized, collection-like interface to query, add, and remove data, hiding the low-level database implementation details from the rest of the application.
| Scenario | Architecture |
|---|---|
| Small/simple app | Layered |
| Enterprise system with complex logic | Onion |
| Fast MVP/prototype | Layered |
| Long-term scalable platform | Onion |
| Mostly CRUD operations | Layered |
Characteristics
- simple business logic that does not grow complex.
- You want fast development
- simple app, API, POC or MVP
- You are building:
- CRUD apps
- Internal enterprise systems
- Admin portals
Frontend
Presentation Layer - WebUI, Desktop App, Mobile App, CLI, Foundry Agent Service, more...
Backend
- Application (API) Layer
- Business Logic (Domain) Layer
- Transaction Script pattern
- Data Access Layer
- Table Data Gateway
- Row Data Gateway
- Repository pattern
Characteristics
Software Architecture
Characteristics
Software Architecture
API layer logs:
request received correlation ID / trace ID authenticated user / tenant response status unhandled exception
Application layer logs:
use case started important decisions or branches use case completed business failure that matters operationally
Domain layer logs:
generally no logging maybe only in rare cases if your domain services are acting like transaction scripts and you really need observability even then, keep it minimal
Infrastructure layer logs:
external calls failed DB retries / timeouts queue publish failures HTTP client failures adapter-specific technical details
-
Agile Delivery
- Product Requirement Template
- Documenting Product Requirements
- Estimation & Sizing
- DevOps
-
Software Architecture Design
- Agent Engineering
- Logging
- Tech Stack
- Testing & Quality
- Observability & Operations