@mytechtoday/augment-extensions 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +35 -3
- package/README.md +3 -3
- package/augment-extensions/domain-rules/software-architecture/README.md +143 -0
- package/augment-extensions/domain-rules/software-architecture/examples/banking-layered.md +961 -0
- package/augment-extensions/domain-rules/software-architecture/examples/ecommerce-microservices.md +990 -0
- package/augment-extensions/domain-rules/software-architecture/examples/iot-eventdriven.md +882 -0
- package/augment-extensions/domain-rules/software-architecture/examples/monolith-to-microservices-migration.md +703 -0
- package/augment-extensions/domain-rules/software-architecture/examples/serverless-imageprocessing.md +957 -0
- package/augment-extensions/domain-rules/software-architecture/examples/trading-eventdriven.md +747 -0
- package/augment-extensions/domain-rules/software-architecture/module.json +119 -0
- package/augment-extensions/domain-rules/software-architecture/rules/challenges-solutions.md +763 -0
- package/augment-extensions/domain-rules/software-architecture/rules/definitions-terminology.md +409 -0
- package/augment-extensions/domain-rules/software-architecture/rules/design-principles.md +684 -0
- package/augment-extensions/domain-rules/software-architecture/rules/evaluation-testing.md +1381 -0
- package/augment-extensions/domain-rules/software-architecture/rules/event-driven-architecture.md +616 -0
- package/augment-extensions/domain-rules/software-architecture/rules/fundamentals.md +306 -0
- package/augment-extensions/domain-rules/software-architecture/rules/industry-architectures.md +554 -0
- package/augment-extensions/domain-rules/software-architecture/rules/layered-architecture.md +776 -0
- package/augment-extensions/domain-rules/software-architecture/rules/microservices-architecture.md +503 -0
- package/augment-extensions/domain-rules/software-architecture/rules/modeling-documentation.md +1199 -0
- package/augment-extensions/domain-rules/software-architecture/rules/monolithic-architecture.md +351 -0
- package/augment-extensions/domain-rules/software-architecture/rules/principles.md +556 -0
- package/augment-extensions/domain-rules/software-architecture/rules/quality-attributes.md +797 -0
- package/augment-extensions/domain-rules/software-architecture/rules/scalability-performance.md +1345 -0
- package/augment-extensions/domain-rules/software-architecture/rules/security-architecture.md +1039 -0
- package/augment-extensions/domain-rules/software-architecture/rules/serverless-architecture.md +711 -0
- package/augment-extensions/domain-rules/software-architecture/rules/skills-development.md +568 -0
- package/augment-extensions/domain-rules/software-architecture/rules/tools-methodologies.md +961 -0
- package/augment-extensions/workflows/beads/examples/complete-workflow-example.md +8 -8
- package/augment-extensions/workflows/beads/rules/best-practices.md +2 -2
- package/augment-extensions/workflows/beads/rules/file-format.md +4 -4
- package/augment-extensions/workflows/beads/rules/manual-setup.md +4 -4
- package/augment-extensions/workflows/beads/rules/workflow.md +3 -3
- package/modules.md +40 -3
- package/package.json +1 -1
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
# Software Architecture Fundamentals
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This document covers the core architectural elements that form the foundation of software system architecture design, based on ISO/IEC 42010 standard.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Knowledge
|
|
10
|
+
|
|
11
|
+
### Core Architectural Elements
|
|
12
|
+
|
|
13
|
+
**Components**
|
|
14
|
+
- Self-contained units of functionality
|
|
15
|
+
- Encapsulate specific responsibilities
|
|
16
|
+
- Have well-defined interfaces
|
|
17
|
+
- Examples: services, modules, classes, libraries
|
|
18
|
+
|
|
19
|
+
**Connectors**
|
|
20
|
+
- Mechanisms for component interaction
|
|
21
|
+
- Define communication protocols
|
|
22
|
+
- Examples: APIs, message queues, RPC, event buses
|
|
23
|
+
|
|
24
|
+
**Configurations**
|
|
25
|
+
- Arrangement of components and connectors
|
|
26
|
+
- Define system topology
|
|
27
|
+
- Specify deployment architecture
|
|
28
|
+
- Examples: deployment diagrams, network topology
|
|
29
|
+
|
|
30
|
+
### ISO/IEC 42010 Standard
|
|
31
|
+
|
|
32
|
+
**Architecture Description**
|
|
33
|
+
- Work product documenting architecture
|
|
34
|
+
- Addresses stakeholder concerns
|
|
35
|
+
- Uses multiple architectural views
|
|
36
|
+
- Maintained throughout system lifecycle
|
|
37
|
+
|
|
38
|
+
**Stakeholders**
|
|
39
|
+
- Individuals/organizations with interests in the system
|
|
40
|
+
- Examples: developers, operators, users, business owners
|
|
41
|
+
- Each has unique concerns and requirements
|
|
42
|
+
|
|
43
|
+
**Concerns**
|
|
44
|
+
- Interests pertaining to system development, operation, or use
|
|
45
|
+
- Examples: performance, security, maintainability, cost
|
|
46
|
+
- Drive architectural decisions
|
|
47
|
+
|
|
48
|
+
**Viewpoints**
|
|
49
|
+
- Conventions for constructing, interpreting views
|
|
50
|
+
- Define notation, modeling techniques
|
|
51
|
+
- Examples: logical view, process view, deployment view
|
|
52
|
+
|
|
53
|
+
**Views**
|
|
54
|
+
- Representation of system from perspective of concerns
|
|
55
|
+
- Address specific stakeholder concerns
|
|
56
|
+
- Multiple views form complete architecture description
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Skills
|
|
61
|
+
|
|
62
|
+
### Identifying Components
|
|
63
|
+
|
|
64
|
+
**Decomposition Strategies**
|
|
65
|
+
1. **Functional Decomposition**: Break down by business capabilities
|
|
66
|
+
2. **Domain-Driven Design**: Identify bounded contexts
|
|
67
|
+
3. **Layering**: Separate by technical concerns (presentation, business, data)
|
|
68
|
+
|
|
69
|
+
**Component Characteristics**
|
|
70
|
+
- High cohesion (related functionality together)
|
|
71
|
+
- Low coupling (minimal dependencies)
|
|
72
|
+
- Clear responsibilities
|
|
73
|
+
- Well-defined interfaces
|
|
74
|
+
|
|
75
|
+
### Designing Connectors
|
|
76
|
+
|
|
77
|
+
**Synchronous Communication**
|
|
78
|
+
- Request-response patterns
|
|
79
|
+
- REST APIs, gRPC
|
|
80
|
+
- Use when: immediate response needed, simple workflows
|
|
81
|
+
|
|
82
|
+
**Asynchronous Communication**
|
|
83
|
+
- Message queues, event streams
|
|
84
|
+
- Pub/sub patterns
|
|
85
|
+
- Use when: decoupling needed, eventual consistency acceptable
|
|
86
|
+
|
|
87
|
+
**Connector Selection Criteria**
|
|
88
|
+
- Performance requirements
|
|
89
|
+
- Reliability needs
|
|
90
|
+
- Coupling tolerance
|
|
91
|
+
- Technology constraints
|
|
92
|
+
|
|
93
|
+
### Defining Configurations
|
|
94
|
+
|
|
95
|
+
**Deployment Patterns**
|
|
96
|
+
- Single server (monolithic deployment)
|
|
97
|
+
- Multi-tier (web, app, database servers)
|
|
98
|
+
- Distributed (microservices, serverless)
|
|
99
|
+
- Hybrid (combination of patterns)
|
|
100
|
+
|
|
101
|
+
**Configuration Documentation**
|
|
102
|
+
- Deployment diagrams
|
|
103
|
+
- Network topology
|
|
104
|
+
- Infrastructure as Code (IaC)
|
|
105
|
+
- Container orchestration manifests
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Examples
|
|
110
|
+
|
|
111
|
+
### Example 1: E-Commerce System Components
|
|
112
|
+
|
|
113
|
+
**Components:**
|
|
114
|
+
```
|
|
115
|
+
- Product Catalog Service
|
|
116
|
+
- Manages product information
|
|
117
|
+
- Provides search and filtering
|
|
118
|
+
- Interface: REST API
|
|
119
|
+
|
|
120
|
+
- Shopping Cart Service
|
|
121
|
+
- Manages user cart state
|
|
122
|
+
- Calculates totals
|
|
123
|
+
- Interface: REST API + Event Publisher
|
|
124
|
+
|
|
125
|
+
- Order Processing Service
|
|
126
|
+
- Handles order placement
|
|
127
|
+
- Coordinates payment and fulfillment
|
|
128
|
+
- Interface: Event Consumer + REST API
|
|
129
|
+
|
|
130
|
+
- Payment Gateway Connector
|
|
131
|
+
- Integrates with payment providers
|
|
132
|
+
- Interface: Adapter pattern
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Connectors:**
|
|
136
|
+
```
|
|
137
|
+
- REST API (synchronous)
|
|
138
|
+
- User → Product Catalog
|
|
139
|
+
- User → Shopping Cart
|
|
140
|
+
|
|
141
|
+
- Event Bus (asynchronous)
|
|
142
|
+
- Shopping Cart → Order Processing
|
|
143
|
+
- Order Processing → Inventory
|
|
144
|
+
- Order Processing → Notification
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Configuration:**
|
|
148
|
+
```
|
|
149
|
+
- Web Tier: Load balancer + API Gateway
|
|
150
|
+
- Application Tier: Containerized services (Kubernetes)
|
|
151
|
+
- Data Tier: Distributed databases (per service)
|
|
152
|
+
- Message Tier: Kafka event bus
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Example 2: Banking Application Architecture
|
|
156
|
+
|
|
157
|
+
**Components:**
|
|
158
|
+
```
|
|
159
|
+
- Account Management
|
|
160
|
+
- CRUD operations for accounts
|
|
161
|
+
- Balance inquiries
|
|
162
|
+
- Transaction history
|
|
163
|
+
|
|
164
|
+
- Transaction Processor
|
|
165
|
+
- Validates transactions
|
|
166
|
+
- Ensures ACID properties
|
|
167
|
+
- Maintains audit trail
|
|
168
|
+
|
|
169
|
+
- Authentication Service
|
|
170
|
+
- User authentication
|
|
171
|
+
- Session management
|
|
172
|
+
- Multi-factor authentication
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Connectors:**
|
|
176
|
+
```
|
|
177
|
+
- Secure REST API (HTTPS + OAuth2)
|
|
178
|
+
- Database connections (connection pooling)
|
|
179
|
+
- Message queue for async notifications
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
**Configuration:**
|
|
183
|
+
```
|
|
184
|
+
- High-availability deployment (active-active)
|
|
185
|
+
- Database replication (master-slave)
|
|
186
|
+
- Encrypted communication channels
|
|
187
|
+
- Firewall and DMZ configuration
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Understanding
|
|
193
|
+
|
|
194
|
+
### Why Components Matter
|
|
195
|
+
|
|
196
|
+
**Modularity Benefits**
|
|
197
|
+
- Independent development and deployment
|
|
198
|
+
- Easier testing and maintenance
|
|
199
|
+
- Technology diversity (polyglot architecture)
|
|
200
|
+
- Team autonomy and scalability
|
|
201
|
+
|
|
202
|
+
**Component Granularity**
|
|
203
|
+
- Too fine-grained: excessive communication overhead
|
|
204
|
+
- Too coarse-grained: reduced flexibility, harder to maintain
|
|
205
|
+
- Right-sizing: balance between cohesion and coupling
|
|
206
|
+
|
|
207
|
+
### Connector Trade-offs
|
|
208
|
+
|
|
209
|
+
**Synchronous vs. Asynchronous**
|
|
210
|
+
|
|
211
|
+
Synchronous:
|
|
212
|
+
- ✅ Simpler to reason about
|
|
213
|
+
- ✅ Immediate feedback
|
|
214
|
+
- ❌ Tight coupling
|
|
215
|
+
- ❌ Cascading failures
|
|
216
|
+
|
|
217
|
+
Asynchronous:
|
|
218
|
+
- ✅ Loose coupling
|
|
219
|
+
- ✅ Better fault tolerance
|
|
220
|
+
- ❌ Eventual consistency
|
|
221
|
+
- ❌ Harder to debug
|
|
222
|
+
|
|
223
|
+
**Direct vs. Indirect Communication**
|
|
224
|
+
|
|
225
|
+
Direct (point-to-point):
|
|
226
|
+
- ✅ Lower latency
|
|
227
|
+
- ✅ Simpler infrastructure
|
|
228
|
+
- ❌ Tight coupling
|
|
229
|
+
- ❌ Harder to scale
|
|
230
|
+
|
|
231
|
+
Indirect (message broker):
|
|
232
|
+
- ✅ Decoupling
|
|
233
|
+
- ✅ Better scalability
|
|
234
|
+
- ❌ Additional infrastructure
|
|
235
|
+
- ❌ Potential bottleneck
|
|
236
|
+
|
|
237
|
+
### Configuration Implications
|
|
238
|
+
|
|
239
|
+
**Deployment Complexity**
|
|
240
|
+
- More components = more deployment complexity
|
|
241
|
+
- Requires orchestration (Kubernetes, Docker Swarm)
|
|
242
|
+
- Infrastructure as Code essential
|
|
243
|
+
- Monitoring and observability critical
|
|
244
|
+
|
|
245
|
+
**Operational Considerations**
|
|
246
|
+
- Service discovery mechanisms
|
|
247
|
+
- Load balancing strategies
|
|
248
|
+
- Health checks and auto-recovery
|
|
249
|
+
- Logging and distributed tracing
|
|
250
|
+
|
|
251
|
+
**Cost Implications**
|
|
252
|
+
- Infrastructure costs (compute, storage, network)
|
|
253
|
+
- Operational overhead (monitoring, maintenance)
|
|
254
|
+
- Development complexity (distributed systems)
|
|
255
|
+
- Trade-off: flexibility vs. simplicity
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Best Practices
|
|
260
|
+
|
|
261
|
+
### Component Design
|
|
262
|
+
|
|
263
|
+
✅ **Single Responsibility**: Each component has one clear purpose
|
|
264
|
+
✅ **Interface Segregation**: Provide focused, client-specific interfaces
|
|
265
|
+
✅ **Dependency Inversion**: Depend on abstractions, not concretions
|
|
266
|
+
✅ **Encapsulation**: Hide implementation details
|
|
267
|
+
❌ **God Components**: Avoid components that do everything
|
|
268
|
+
❌ **Circular Dependencies**: Prevent component cycles
|
|
269
|
+
|
|
270
|
+
### Connector Design
|
|
271
|
+
|
|
272
|
+
✅ **Protocol Versioning**: Support multiple API versions
|
|
273
|
+
✅ **Error Handling**: Graceful degradation and retries
|
|
274
|
+
✅ **Timeouts**: Prevent indefinite blocking
|
|
275
|
+
✅ **Circuit Breakers**: Protect against cascading failures
|
|
276
|
+
❌ **Chatty Communication**: Minimize round trips
|
|
277
|
+
❌ **Tight Coupling**: Avoid shared databases between services
|
|
278
|
+
|
|
279
|
+
### Configuration Management
|
|
280
|
+
|
|
281
|
+
✅ **Infrastructure as Code**: Version control infrastructure
|
|
282
|
+
✅ **Environment Parity**: Dev/staging/prod consistency
|
|
283
|
+
✅ **Secrets Management**: Secure credential storage
|
|
284
|
+
✅ **Configuration Externalization**: Separate config from code
|
|
285
|
+
❌ **Hardcoded Values**: Avoid embedded configuration
|
|
286
|
+
❌ **Manual Deployment**: Automate deployment processes
|
|
287
|
+
|
|
288
|
+
---
|
|
289
|
+
|
|
290
|
+
## References
|
|
291
|
+
|
|
292
|
+
- **ISO/IEC 42010:2011** - Systems and software engineering — Architecture description
|
|
293
|
+
- **Software Architecture in Practice** (Bass, Clements, Kazman)
|
|
294
|
+
- **Designing Data-Intensive Applications** (Martin Kleppmann)
|
|
295
|
+
- **Building Microservices** (Sam Newman)
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## Related Topics
|
|
300
|
+
|
|
301
|
+
- [Principles](./principles.md) - Architectural principles and design guidelines
|
|
302
|
+
- [Definitions and Terminology](./definitions-terminology.md) - Key architectural concepts
|
|
303
|
+
- [Microservices Architecture](./microservices.md) - Microservices patterns
|
|
304
|
+
- [Quality Attributes](./quality-attributes.md) - Non-functional requirements
|
|
305
|
+
|
|
306
|
+
|