- Modified the autodev state to reflect the current testing phase and details of the new `jetson-e2e` tests. - Enhanced the "How to Test" documentation to provide clearer instructions on the demo replay validation process, including video and tlog alignment steps. - Updated architectural documentation to include the new demo replay operator flow and its dependencies. - Documented the removal of deprecated auto-sync features and clarified the operator-facing UI for replay validation. - Added new entries in the dependencies table for upcoming tasks related to the demo replay flow. These changes improve clarity and usability for operators and developers working with the demo replay system.
4.8 KiB
Component Specification Template
Use this template for each component. Save as components/[##]_[name]/description.md.
# [Component Name]
## 1. High-Level Overview
**Purpose**: [One sentence: what this component does and its role in the system]
**Architectural Pattern**: [e.g., Repository, Event-driven, Pipeline, Facade, etc.]
**Upstream dependencies**: [Components that this component calls or consumes from]
**Downstream consumers**: [Components that call or consume from this component]
## 2. Internal Interfaces
For each interface this component exposes internally:
### Interface: [InterfaceName]
| Method | Input | Output | Async | Error Types |
|--------|-------|--------|-------|-------------|
| `method_name` | `InputDTO` | `OutputDTO` | Yes/No | `ErrorType1`, `ErrorType2` |
**Input DTOs**:
[DTO name]: field_1: type (required/optional) — description field_2: type (required/optional) — description
**Output DTOs**:
[DTO name]: field_1: type — description field_2: type — description
## 3. External API Specification
> Include this section only if the component exposes an external HTTP/gRPC API.
> Skip if the component is internal-only.
| Endpoint | Method | Auth | Rate Limit | Description |
|----------|--------|------|------------|-------------|
| `/api/v1/...` | GET/POST/PUT/DELETE | Required/Public | X req/min | Brief description |
**Request/Response schemas**: define per endpoint using OpenAPI-style notation.
**Example request/response**:
```json
// Request
{ }
// Response
{ }
4. Data Access Patterns
Queries
| Query | Frequency | Hot Path | Index Needed |
|---|---|---|---|
| [describe query] | High/Medium/Low | Yes/No | Yes/No |
Caching Strategy
| Data | Cache Type | TTL | Invalidation |
|---|---|---|---|
| [data item] | In-memory / Redis / None | [duration] | [trigger] |
Storage Estimates
| Table/Collection | Est. Row Count (1yr) | Row Size | Total Size | Growth Rate |
|---|---|---|---|---|
| [table_name] | /month |
Data Management
Seed data: [Required seed data and how to load it]
Rollback: [Rollback procedure for this component's data changes]
5. Implementation Details
Algorithmic Complexity: [Big O for critical methods — only if non-trivial]
State Management: [Local state / Global state / Stateless — explain how state is handled]
Key Dependencies: [External libraries and their purpose]
| Library | Version | Purpose |
|---|---|---|
| [name] | [version] | [why needed] |
Error Handling Strategy:
- [How errors are caught, propagated, and reported]
- [Retry policy if applicable]
- [Circuit breaker if applicable]
6. Extensions and Helpers
List any shared utilities this component needs that should live in a
helpers/folder.
| Helper | Purpose | Used By |
|---|---|---|
| [helper_name] | [what it does] | [list of components] |
7. Caveats & Edge Cases
Known limitations:
- [Limitation 1]
Potential race conditions:
- [Race condition scenario, if any]
Performance bottlenecks:
- [Bottleneck description and mitigation approach]
8. Dependency Graph
Must be implemented after: [list of component numbers/names]
Can be implemented in parallel with: [list of component numbers/names]
Blocks: [list of components that depend on this one]
9. Logging Strategy
| Log Level | When | Example |
|---|---|---|
| ERROR | Unrecoverable failures | Failed to process order {id}: {error} |
| WARN | Recoverable issues | Retry attempt {n} for {operation} |
| INFO | Key business events | Order {id} created by user {uid} |
| DEBUG | Development diagnostics | Query returned {n} rows in {ms}ms |
Log format: [structured JSON / plaintext — match system standard]
Log storage: [stdout / file / centralized logging service]
---
## Guidance Notes
- **Section 3 (External API)**: skip entirely for internal-only components. Include for any component that exposes HTTP endpoints, WebSocket connections, or gRPC services.
- **Section 4 (Storage Estimates)**: critical for components that manage persistent data. Skip for stateless components.
- **Section 5 (Algorithmic Complexity)**: only document if the algorithm is non-trivial (O(n^2) or worse, recursive, etc.). Simple CRUD operations don't need this.
- **Section 6 (Helpers)**: if the helper is used by only one component, keep it inside that component. Only extract to `helpers/` if shared by 2+ components.
- **Section 8 (Dependency Graph)**: this is essential for determining implementation order. Be precise about what "depends on" means — data dependency, API dependency, or shared infrastructure.