ADR-013: Engine Architecture v1.0 — Six Engines + Orchestrator
- Reality Engine: capture reality → observations - Knowledge Engine: understand meaning → evidence, findings - Decision Engine: make actionable → decisions, recommendations - Mission Engine: determine what to collect → missions, gaps - Economic Engine: manage budgets → credits, ROI - Learning Engine: continuously improve → better models - Platform Orchestrator: coordinates via events Key principles: - Each engine independently versioned - Engines never call each other directly - All communication via events - Dashboard shows results, not engines - Intelligence Lab tests engines, not platform Next: PR-005A — Mission Import UI for MVP-0
This commit is contained in:
@@ -0,0 +1,336 @@
|
|||||||
|
# LandveX Engine Architecture v1.0
|
||||||
|
|
||||||
|
## Platform Overview
|
||||||
|
|
||||||
|
LandveX is not a collection of services. It is a **platform of autonomous engines** with clear responsibilities.
|
||||||
|
|
||||||
|
```
|
||||||
|
Reality Engine
|
||||||
|
↓
|
||||||
|
Knowledge Engine
|
||||||
|
↓
|
||||||
|
Decision Engine
|
||||||
|
↓
|
||||||
|
Mission Engine
|
||||||
|
↓
|
||||||
|
Economic Engine
|
||||||
|
↓
|
||||||
|
Learning Engine
|
||||||
|
```
|
||||||
|
|
||||||
|
**Platform Orchestrator** coordinates engines via events. Not AI. Not Dashboard. Just orchestration.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Engine 1 — Reality Engine
|
||||||
|
|
||||||
|
**Responsibility:** Transform reality into verified observations.
|
||||||
|
|
||||||
|
**Input:**
|
||||||
|
- quiXzoom (phone)
|
||||||
|
- Drones
|
||||||
|
- Cameras
|
||||||
|
- Video
|
||||||
|
- GIS
|
||||||
|
- Sensors
|
||||||
|
|
||||||
|
**Output:**
|
||||||
|
- `Observation`
|
||||||
|
- `Artifact`
|
||||||
|
- `Metadata`
|
||||||
|
|
||||||
|
**Domain objects created:**
|
||||||
|
- `FieldSession`
|
||||||
|
- `Mission`
|
||||||
|
- `Observation`
|
||||||
|
- `ArchiveArtifact`
|
||||||
|
|
||||||
|
**Events produced:**
|
||||||
|
- `ObservationCreated`
|
||||||
|
- `MissionCompleted`
|
||||||
|
- `ArtifactRegistered`
|
||||||
|
|
||||||
|
**KPIs:**
|
||||||
|
- Observations per hour
|
||||||
|
- Upload success rate
|
||||||
|
- Metadata completeness
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Engine 2 — Knowledge Engine
|
||||||
|
|
||||||
|
**Responsibility:** Understand what observations mean.
|
||||||
|
|
||||||
|
**Input:**
|
||||||
|
- `Observation`
|
||||||
|
- `ArchiveArtifact`
|
||||||
|
|
||||||
|
**Output:**
|
||||||
|
- `Evidence`
|
||||||
|
- `Finding`
|
||||||
|
- `KnowledgeArtifact`
|
||||||
|
- Ontology entries
|
||||||
|
- Taxonomy classifications
|
||||||
|
- Object relations
|
||||||
|
- Knowledge Graph updates
|
||||||
|
|
||||||
|
**Domain objects created:**
|
||||||
|
- `Evidence`
|
||||||
|
- `Finding`
|
||||||
|
- `KnowledgeArtifact`
|
||||||
|
|
||||||
|
**Events consumed:**
|
||||||
|
- `ObservationCreated`
|
||||||
|
|
||||||
|
**Events produced:**
|
||||||
|
- `EvidenceCreated`
|
||||||
|
- `FindingCreated`
|
||||||
|
- `KnowledgeExtracted`
|
||||||
|
|
||||||
|
**KPIs:**
|
||||||
|
- Knowledge extraction accuracy
|
||||||
|
- Ontology coverage
|
||||||
|
- Taxonomy completeness
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Engine 3 — Decision Engine
|
||||||
|
|
||||||
|
**Responsibility:** Make knowledge actionable.
|
||||||
|
|
||||||
|
**Input:**
|
||||||
|
- `Finding`
|
||||||
|
- `Evidence`
|
||||||
|
- Knowledge Graph
|
||||||
|
|
||||||
|
**Output:**
|
||||||
|
- `Decision`
|
||||||
|
- `Priority`
|
||||||
|
- `Confidence`
|
||||||
|
- `Consequence`
|
||||||
|
- `Recommendation`
|
||||||
|
|
||||||
|
**Domain objects created:**
|
||||||
|
- `DecisionCase`
|
||||||
|
- `Decision`
|
||||||
|
- `Review`
|
||||||
|
|
||||||
|
**Events consumed:**
|
||||||
|
- `FindingCreated`
|
||||||
|
|
||||||
|
**Events produced:**
|
||||||
|
- `DecisionCreated`
|
||||||
|
- `DecisionApproved`
|
||||||
|
- `DecisionRejected`
|
||||||
|
|
||||||
|
**KPIs:**
|
||||||
|
- Decision accuracy
|
||||||
|
- Time to decision
|
||||||
|
- Review completion rate
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Engine 4 — Mission Engine
|
||||||
|
|
||||||
|
**Responsibility:** Determine what data to collect next.
|
||||||
|
|
||||||
|
**Input:**
|
||||||
|
- `KnowledgeGap`
|
||||||
|
- `Hotspot`
|
||||||
|
- `Contradiction`
|
||||||
|
- Customer requests
|
||||||
|
- Budget
|
||||||
|
- SLA
|
||||||
|
|
||||||
|
**Output:**
|
||||||
|
- `Mission`
|
||||||
|
- `Reward`
|
||||||
|
- `Priority`
|
||||||
|
- `Coverage`
|
||||||
|
|
||||||
|
**Domain objects created:**
|
||||||
|
- `Mission`
|
||||||
|
- `KnowledgeGap`
|
||||||
|
- `Hotspot`
|
||||||
|
- `Contradiction`
|
||||||
|
|
||||||
|
**Events consumed:**
|
||||||
|
- `KnowledgeGapIdentified`
|
||||||
|
- `ContradictionDetected`
|
||||||
|
|
||||||
|
**Events produced:**
|
||||||
|
- `MissionCreated`
|
||||||
|
- `MissionAssigned`
|
||||||
|
- `MissionCompleted`
|
||||||
|
|
||||||
|
**KPIs:**
|
||||||
|
- Knowledge gap closure rate
|
||||||
|
- Mission success rate
|
||||||
|
- Coverage improvement
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Engine 5 — Economic Engine
|
||||||
|
|
||||||
|
**Responsibility:** Manage budgets, credits, and ROI.
|
||||||
|
|
||||||
|
**Input:**
|
||||||
|
- `Budget`
|
||||||
|
- `Mission`
|
||||||
|
- `VerifiedDelivery`
|
||||||
|
|
||||||
|
**Output:**
|
||||||
|
- `Credit`
|
||||||
|
- `Settlement`
|
||||||
|
- `ROI`
|
||||||
|
- `RewardPricing`
|
||||||
|
- `CostAllocation`
|
||||||
|
|
||||||
|
**Domain objects created:**
|
||||||
|
- `Credit`
|
||||||
|
- `CreditBudget`
|
||||||
|
- `IntelligenceLedgerEntry`
|
||||||
|
|
||||||
|
**Events consumed:**
|
||||||
|
- `MissionCompleted`
|
||||||
|
- `DecisionApproved`
|
||||||
|
|
||||||
|
**Events produced:**
|
||||||
|
- `CreditsAllocated`
|
||||||
|
- `PaymentSettled`
|
||||||
|
- `RoiCalculated`
|
||||||
|
|
||||||
|
**KPIs:**
|
||||||
|
- Cost per decision
|
||||||
|
- Knowledge return per credit
|
||||||
|
- Budget utilization
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Engine 6 — Learning Engine
|
||||||
|
|
||||||
|
**Responsibility:** Continuously improve all engines.
|
||||||
|
|
||||||
|
**Input:**
|
||||||
|
- `Outcome`
|
||||||
|
- `Decision`
|
||||||
|
- `Reality` (ground truth)
|
||||||
|
|
||||||
|
**Output:**
|
||||||
|
- Better models
|
||||||
|
- Better rules
|
||||||
|
- Better missions
|
||||||
|
- Better pricing
|
||||||
|
|
||||||
|
**Events consumed:**
|
||||||
|
- `DecisionApproved`
|
||||||
|
- `MissionCompleted`
|
||||||
|
- `OutcomeVerified`
|
||||||
|
|
||||||
|
**Events produced:**
|
||||||
|
- `ModelUpdated`
|
||||||
|
- `RulesRefined`
|
||||||
|
- `PricingAdjusted`
|
||||||
|
|
||||||
|
**KPIs:**
|
||||||
|
- Model improvement rate
|
||||||
|
- Prediction accuracy gain
|
||||||
|
- Cost reduction
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Platform Orchestrator
|
||||||
|
|
||||||
|
**Responsibility:** Coordinate engines via events.
|
||||||
|
|
||||||
|
**Not AI. Not Dashboard. Just orchestration.**
|
||||||
|
|
||||||
|
**Example flow:**
|
||||||
|
```
|
||||||
|
ObservationCreated
|
||||||
|
↓
|
||||||
|
Knowledge Engine (extract knowledge)
|
||||||
|
↓
|
||||||
|
Decision Engine (create decision)
|
||||||
|
↓
|
||||||
|
Mission Engine (check for gaps)
|
||||||
|
↓
|
||||||
|
Economic Engine (calculate ROI)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Rules:**
|
||||||
|
- Engines never call each other directly
|
||||||
|
- All communication via events
|
||||||
|
- Orchestrator decides which engine runs next
|
||||||
|
- Each engine is independently versioned
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Dashboard
|
||||||
|
|
||||||
|
**Dashboard never shows engines.**
|
||||||
|
|
||||||
|
**Dashboard shows results:**
|
||||||
|
```
|
||||||
|
AREA
|
||||||
|
Score
|
||||||
|
↓
|
||||||
|
Top Decisions
|
||||||
|
↓
|
||||||
|
Hotspots
|
||||||
|
↓
|
||||||
|
Business Impact
|
||||||
|
↓
|
||||||
|
Recommended Actions
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Intelligence Lab
|
||||||
|
|
||||||
|
**Intelligence Lab is the development environment for engines.**
|
||||||
|
|
||||||
|
**Test:**
|
||||||
|
- Knowledge Engine
|
||||||
|
- Decision Engine
|
||||||
|
- Learning Engine
|
||||||
|
|
||||||
|
**Not:**
|
||||||
|
- Whole platform
|
||||||
|
- Production data
|
||||||
|
- End-to-end flows
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Engine Contracts
|
||||||
|
|
||||||
|
Each engine MUST define:
|
||||||
|
|
||||||
|
| Contract | Description |
|
||||||
|
|----------|-------------|
|
||||||
|
| **Responsibility** | What this engine does |
|
||||||
|
| **Input** | What it consumes |
|
||||||
|
| **Output** | What it produces |
|
||||||
|
| **Domain Objects** | What it can create/modify |
|
||||||
|
| **Events In** | Events it listens to |
|
||||||
|
| **Events Out** | Events it produces |
|
||||||
|
| **KPIs** | How quality is measured |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Development Principles
|
||||||
|
|
||||||
|
1. **Each engine independently versioned**
|
||||||
|
2. **Engines never call each other directly**
|
||||||
|
3. **All communication via events**
|
||||||
|
4. **Orchestrator decides flow**
|
||||||
|
5. **Dashboard shows results, not engines**
|
||||||
|
6. **Intelligence Lab tests engines, not platform**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Related Documents
|
||||||
|
|
||||||
|
- ADR-011: Four-Layer Data Architecture
|
||||||
|
- ADR-012: Economic Engine
|
||||||
|
- LANDVEX_PLATFORM_ARCHITECTURE.md
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
# ADR-013: Engine Architecture
|
||||||
|
|
||||||
|
## Status
|
||||||
|
Accepted
|
||||||
|
|
||||||
|
## Context
|
||||||
|
LandveX has grown from a collection of components to a platform. We need clear responsibility boundaries.
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
Organize LandveX into six autonomous engines:
|
||||||
|
|
||||||
|
1. **Reality Engine** — capture reality
|
||||||
|
2. **Knowledge Engine** — understand meaning
|
||||||
|
3. **Decision Engine** — make knowledge actionable
|
||||||
|
4. **Mission Engine** — determine what to collect next
|
||||||
|
5. **Economic Engine** — manage budgets and ROI
|
||||||
|
6. **Learning Engine** — continuously improve
|
||||||
|
|
||||||
|
**Platform Orchestrator** coordinates via events. Not AI. Not Dashboard.
|
||||||
|
|
||||||
|
## Key Principles
|
||||||
|
|
||||||
|
- Each engine independently versioned
|
||||||
|
- Engines never call each other directly
|
||||||
|
- All communication via events
|
||||||
|
- Orchestrator decides flow
|
||||||
|
- Dashboard shows results, not engines
|
||||||
|
|
||||||
|
## Consequences
|
||||||
|
|
||||||
|
### Positive
|
||||||
|
- Clear responsibility boundaries
|
||||||
|
- Independent development and scaling
|
||||||
|
- Easier testing
|
||||||
|
- Better fault isolation
|
||||||
|
|
||||||
|
### Negative
|
||||||
|
- More complex event handling
|
||||||
|
- Need orchestrator
|
||||||
|
- Potential latency between engines
|
||||||
|
|
||||||
|
## Related
|
||||||
|
- ADR-011: Four-Layer Data Architecture
|
||||||
|
- ADR-012: Economic Engine
|
||||||
|
- LANDVEX_ENGINE_ARCHITECTURE_v1.0.md
|
||||||
Reference in New Issue
Block a user