archrip 0.2.4 → 0.2.5
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.
|
@@ -48,9 +48,10 @@ MVC / Layered:
|
|
|
48
48
|
- FastAPI: External(0) → Routers(1) → Services(2) → Repositories(3) → Models(4)
|
|
49
49
|
|
|
50
50
|
DDD / Clean Architecture / Hexagonal (use `"layout": "concentric"`):
|
|
51
|
-
- Generic: External(0) → Adapters(1)
|
|
52
|
-
- Go (Hex): External(0) →
|
|
51
|
+
- Generic: External(0) → Adapters(1) [Controllers, DB impl, API clients] → Application Services(2) → Ports(3) [domain-defined interfaces] → Domain Entities(4)
|
|
52
|
+
- Go (Hex): External(0) → Adapters(1) [Handlers, Repositories] → Use Cases(2) → Ports(3) → Domain(4)
|
|
53
53
|
- Flutter (Clean): External(0) → Data Sources(1) → Repositories(2) → Use Cases(3) → Entities(4)
|
|
54
|
+
- Note: Ports are interfaces **defined by the domain** — they belong near domain core, not at the adapter layer. Adapters implement/use Ports from the outside.
|
|
54
55
|
|
|
55
56
|
Serverless / Microservices:
|
|
56
57
|
- SST/Lambda: External(0) → API Gateway(1) → Lambda Handlers(2) → Services(3) → Domain(4)
|
|
@@ -152,7 +153,7 @@ After writing the file:
|
|
|
152
153
|
|
|
153
154
|
### Node Rules
|
|
154
155
|
- `id`: kebab-case, prefixed by category abbreviation (ctrl-, svc-, port-, adpt-, model-, db-, ext-, job-, dto-)
|
|
155
|
-
- `layer`: non-negative integer. **Higher = closer to domain core / more stable. Lower = closer to external world / more volatile.** Dagre (TB) places higher layers lower on screen; concentric places them at center. Use as many layers as the architecture requires (typically 3-6). Example for DDD: 0=external, 1=adapters
|
|
156
|
+
- `layer`: non-negative integer. **Higher = closer to domain core / more stable. Lower = closer to external world / more volatile.** Dagre (TB) places higher layers lower on screen; concentric places them at center. Use as many layers as the architecture requires (typically 3-6). Example for DDD: 0=external, 1=adapters (controllers + infra), 2=app services, 3=ports, 4=domain entities. Example for MVC: 0=external, 1=controllers, 2=services, 3=models.
|
|
156
157
|
- `category`: one of controller, service, port, adapter, model, database, external, job, dto (or custom). Use `model` for domain entities/value objects (core business logic). Use `database` for DB tables, migrations, ORMs, and infrastructure persistence.
|
|
157
158
|
- `label`: display name for the node
|
|
158
159
|
- `description`: 1-3 sentences explaining responsibility + business context. Do NOT just echo the label. Cross-reference documentation for richer context (see Description Guidelines below)
|
|
@@ -48,9 +48,10 @@ MVC / Layered:
|
|
|
48
48
|
- FastAPI: External(0) → Routers(1) → Services(2) → Repositories(3) → Models(4)
|
|
49
49
|
|
|
50
50
|
DDD / Clean Architecture / Hexagonal (use `"layout": "concentric"`):
|
|
51
|
-
- Generic: External(0) → Adapters(1)
|
|
52
|
-
- Go (Hex): External(0) →
|
|
51
|
+
- Generic: External(0) → Adapters(1) [Controllers, DB impl, API clients] → Application Services(2) → Ports(3) [domain-defined interfaces] → Domain Entities(4)
|
|
52
|
+
- Go (Hex): External(0) → Adapters(1) [Handlers, Repositories] → Use Cases(2) → Ports(3) → Domain(4)
|
|
53
53
|
- Flutter (Clean): External(0) → Data Sources(1) → Repositories(2) → Use Cases(3) → Entities(4)
|
|
54
|
+
- Note: Ports are interfaces **defined by the domain** — they belong near domain core, not at the adapter layer. Adapters implement/use Ports from the outside.
|
|
54
55
|
|
|
55
56
|
Serverless / Microservices:
|
|
56
57
|
- SST/Lambda: External(0) → API Gateway(1) → Lambda Handlers(2) → Services(3) → Domain(4)
|
|
@@ -152,7 +153,7 @@ After writing the file:
|
|
|
152
153
|
|
|
153
154
|
### Node Rules
|
|
154
155
|
- `id`: kebab-case, prefixed by category abbreviation (ctrl-, svc-, port-, adpt-, model-, db-, ext-, job-, dto-)
|
|
155
|
-
- `layer`: non-negative integer. **Higher = closer to domain core / more stable. Lower = closer to external world / more volatile.** Dagre (TB) places higher layers lower on screen; concentric places them at center. Use as many layers as the architecture requires (typically 3-6). Example for DDD: 0=external, 1=adapters
|
|
156
|
+
- `layer`: non-negative integer. **Higher = closer to domain core / more stable. Lower = closer to external world / more volatile.** Dagre (TB) places higher layers lower on screen; concentric places them at center. Use as many layers as the architecture requires (typically 3-6). Example for DDD: 0=external, 1=adapters (controllers + infra), 2=app services, 3=ports, 4=domain entities. Example for MVC: 0=external, 1=controllers, 2=services, 3=models.
|
|
156
157
|
- `category`: one of controller, service, port, adapter, model, database, external, job, dto (or custom). Use `model` for domain entities/value objects (core business logic). Use `database` for DB tables, migrations, ORMs, and infrastructure persistence.
|
|
157
158
|
- `label`: display name for the node
|
|
158
159
|
- `description`: 1-3 sentences explaining responsibility + business context. Do NOT just echo the label. Cross-reference documentation for richer context (see Description Guidelines below)
|
|
@@ -48,9 +48,10 @@ MVC / Layered:
|
|
|
48
48
|
- FastAPI: External(0) → Routers(1) → Services(2) → Repositories(3) → Models(4)
|
|
49
49
|
|
|
50
50
|
DDD / Clean Architecture / Hexagonal (use `"layout": "concentric"`):
|
|
51
|
-
- Generic: External(0) → Adapters(1)
|
|
52
|
-
- Go (Hex): External(0) →
|
|
51
|
+
- Generic: External(0) → Adapters(1) [Controllers, DB impl, API clients] → Application Services(2) → Ports(3) [domain-defined interfaces] → Domain Entities(4)
|
|
52
|
+
- Go (Hex): External(0) → Adapters(1) [Handlers, Repositories] → Use Cases(2) → Ports(3) → Domain(4)
|
|
53
53
|
- Flutter (Clean): External(0) → Data Sources(1) → Repositories(2) → Use Cases(3) → Entities(4)
|
|
54
|
+
- Note: Ports are interfaces **defined by the domain** — they belong near domain core, not at the adapter layer. Adapters implement/use Ports from the outside.
|
|
54
55
|
|
|
55
56
|
Serverless / Microservices:
|
|
56
57
|
- SST/Lambda: External(0) → API Gateway(1) → Lambda Handlers(2) → Services(3) → Domain(4)
|
|
@@ -152,7 +153,7 @@ After writing the file:
|
|
|
152
153
|
|
|
153
154
|
### Node Rules
|
|
154
155
|
- `id`: kebab-case, prefixed by category abbreviation (ctrl-, svc-, port-, adpt-, model-, db-, ext-, job-, dto-)
|
|
155
|
-
- `layer`: non-negative integer. **Higher = closer to domain core / more stable. Lower = closer to external world / more volatile.** Dagre (TB) places higher layers lower on screen; concentric places them at center. Use as many layers as the architecture requires (typically 3-6). Example for DDD: 0=external, 1=adapters
|
|
156
|
+
- `layer`: non-negative integer. **Higher = closer to domain core / more stable. Lower = closer to external world / more volatile.** Dagre (TB) places higher layers lower on screen; concentric places them at center. Use as many layers as the architecture requires (typically 3-6). Example for DDD: 0=external, 1=adapters (controllers + infra), 2=app services, 3=ports, 4=domain entities. Example for MVC: 0=external, 1=controllers, 2=services, 3=models.
|
|
156
157
|
- `category`: one of controller, service, port, adapter, model, database, external, job, dto (or custom). Use `model` for domain entities/value objects (core business logic). Use `database` for DB tables, migrations, ORMs, and infrastructure persistence.
|
|
157
158
|
- `label`: display name for the node
|
|
158
159
|
- `description`: 1-3 sentences explaining responsibility + business context. Do NOT just echo the label. Cross-reference documentation for richer context (see Description Guidelines below)
|