Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,27 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
```
timpani/
β”œβ”€β”€ README.md # This file - main project overview
β”œβ”€β”€ doc/ # πŸ“š Comprehensive documentation
β”‚ β”œβ”€β”€ README.md # Documentation guide
β”‚ β”œβ”€β”€ architecture/ # Architecture documentation
β”‚ β”‚ β”œβ”€β”€ HLD/ # High-Level Design
β”‚ β”‚ β”‚ β”œβ”€β”€ timpani_system_design_document.md
β”‚ β”‚ β”‚ └── timpani_rust_grpc_architecture.md
β”‚ β”‚ └── LLD/ # Low-Level Design
β”‚ β”‚ β”œβ”€β”€ timpani-o/ # Orchestrator components (10 docs)
β”‚ β”‚ └── timpani-n/ # Node executor components (10 docs)
β”‚ β”œβ”€β”€ features/ # Feature & Requirements
β”‚ β”‚ β”œβ”€β”€ timpani_features.md
β”‚ β”‚ └── requirements/timpani_requirements.md
β”‚ β”œβ”€β”€ docs/ # Implementation guides
β”‚ β”‚ β”œβ”€β”€ api.md
β”‚ β”‚ β”œβ”€β”€ getting-started.md
β”‚ β”‚ └── developments.md
β”‚ └── contribution/ # Contribution guidelines
β”‚ β”œβ”€β”€ coding-rule.md
β”‚ └── guidelines-en.md
β”œβ”€β”€ sample-apps/
β”‚ β”œβ”€β”€ README.md # Sample applications documentation
β”‚ └── README.md # Sample applications documentation
β”œβ”€β”€ timpani-n/
β”‚ β”œβ”€β”€ README.md # C implementation: Node executor
β”‚ β”œβ”€β”€ README.CentOS.md # CentOS setup guide
Expand Down
111 changes: 74 additions & 37 deletions doc/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
**Document Information:**
- **Issuing Author:** Eclipse timpani Team
- **Configuration ID:** timpani-doc-index
- **Document Status:** Published
- **Document Status:** Draft
- **Last Updated:** 2026-05-13

---
Expand All @@ -17,6 +17,7 @@

| Version | Date | Comment | Author | Approver |
|---------|------|---------|--------|----------|
| 0.0b | 2026-05-13 | Added HLD section with system design and gRPC architecture | LGSI-KarumuriHari | - |
| 0.0a | 2026-05-13 | Initial documentation guide | Eclipse timpani Team | - |

---
Expand All @@ -38,10 +39,16 @@ This documentation provides a comprehensive guide to the timpani project's migra
### 1️⃣ **Architecture Documentation**
πŸ“ [`architecture/`](architecture/)

System architecture, communication protocols, and high-level design documentation.
System architecture, communication protocols, and design documentation.

- [timpani Architecture](architecture/timpani_architecture.md) - Overall system architecture
- [gRPC Architecture](architecture/grpc_architecture.md) - Communication layer design
#### High-Level Design (HLD) Documents
πŸ“ [`architecture/HLD/`](architecture/HLD/)

System-level architecture and technology integration documentation.

**System Architecture:**
- [timpani System Design Document](architecture/HLD/timpani_system_design_document.md) - Overall system architecture, components, deployment
- [timpani gRPC Integration Architecture](architecture/HLD/timpani_rust_grpc_architecture.md) - D-Bus β†’ gRPC migration, communication flow, performance

#### Low-Level Design (LLD) Documents
πŸ“ [`architecture/LLD/`](architecture/LLD/)
Expand Down Expand Up @@ -76,11 +83,25 @@ Component-level LLD documents comparing legacy C/C++ with Rust implementations.
- 10: Data Structures
- [README](architecture/LLD/timpani-n/README.md) - Component overview & migration status

**πŸ” Focus:** Understand system architecture and component-level AS-IS vs WILL-BE comparisons
**πŸ” Focus:**
- **HLD:** System-level architecture, technology stack, deployment patterns
- **LLD:** Component-level AS-IS vs WILL-BE comparisons, implementation details

---

### 2️⃣ **Feature Specifications & Requirements**
πŸ“ [`features/`](features/)

System feature breakdown and requirements documentation.

- [timpani Feature Specification](features/timpani_features.md) - Feature breakdown with mermaid diagrams, 3-level feature tables
- [timpani Requirements Specification](features/requirements/timpani_requirements.md) - Functional and non-functional requirements

**πŸ” Focus:** Understand system capabilities, feature mapping, and requirement traceability

---

### 2️⃣ **Implementation Documentation**
### 3️⃣ **Implementation Documentation**
πŸ“ [`docs/`](docs/)

Detailed developer guides, APIs, and development workflows.
Expand All @@ -95,7 +116,7 @@ Detailed developer guides, APIs, and development workflows.

---

### 3️⃣ **Contribution Guidelines**
### 4️⃣ **Contribution Guidelines**
πŸ“ [`contribution/`](contribution/)

Development standards, coding rules, and workflow guidelines.
Expand All @@ -111,39 +132,47 @@ Development standards, coding rules, and workflow guidelines.

```mermaid
graph TD
subgraph "1. Architecture Phase"
A1[System Architecture<br/>timpani_architecture.md]
A2[gRPC Architecture<br/>grpc_architecture.md]
subgraph "1. Features & Requirements"
F1[Feature Specification<br/>features/timpani_features.md]
F2[Requirements Specification<br/>features/requirements/timpani_requirements.md]
end

subgraph "2. High-Level Architecture"
HLD1[System Design Document<br/>HLD/timpani_system_design_document.md]
HLD2[gRPC Integration Architecture<br/>HLD/timpani_rust_grpc_architecture.md]
end

subgraph "2. Component LLD"
H1[timpani-o LLD<br/>10 Components]
H2[timpani-n LLD<br/>10 Components]
H3[AS-IS vs WILL-BE<br/>Comparisons]
subgraph "3. Component LLD"
LLD1[timpani-o LLD<br/>10 Components]
LLD2[timpani-n LLD<br/>10 Components]
LLD3[AS-IS vs WILL-BE<br/>Comparisons]
end

subgraph "3. Implementation Phase"
subgraph "4. Implementation Phase"
I1[API Documentation]
I2[Getting Started]
I3[Development Guide]
I4[Project Structure]
end

subgraph "4. Quality Assurance"
subgraph "5. Quality Assurance"
Q1[Coding Standards]
Q2[Review Process]
Q3[Release Guide]
end

A1 --> H1
A1 --> H2
A2 --> H1
A2 --> H2
F1 --> F2
F2 --> HLD1
F2 --> HLD2
HLD1 --> LLD1
HLD2 --> LLD1
HLD1 --> LLD2
HLD2 --> LLD2

H1 --> H3
H2 --> H3
LLD1 --> LLD3
LLD2 --> LLD3

H3 --> I1
LLD3 --> I1
I1 --> I2
I2 --> I3
I3 --> I4
Expand All @@ -152,8 +181,9 @@ graph TD
Q1 --> Q2
Q2 --> Q3

style A1 fill:#e3f2fd
style H3 fill:#e8f5e8
style F1 fill:#fff9c4
style HLD1 fill:#e3f2fd
style LLD3 fill:#e8f5e8
style I1 fill:#fff3e0
style Q3 fill:#f3e5f5
```
Expand All @@ -166,12 +196,17 @@ graph TD
eclipse_timpani/
β”œβ”€β”€ doc/ # πŸ“š All documentation (YOU ARE HERE)
β”‚ β”œβ”€β”€ README.md # This file
β”‚ β”œβ”€β”€ architecture/ # Architecture & LLD documentation
β”‚ β”‚ β”œβ”€β”€ timpani_architecture.md
β”‚ β”‚ β”œβ”€β”€ grpc_architecture.md
β”‚ β”œβ”€β”€ architecture/ # Architecture documentation
β”‚ β”‚ β”œβ”€β”€ HLD/ # High-Level Design documents
β”‚ β”‚ β”‚ β”œβ”€β”€ timpani_system_design_document.md
β”‚ β”‚ β”‚ └── timpani_rust_grpc_architecture.md
β”‚ β”‚ └── LLD/ # Low-Level Design documents
β”‚ β”‚ β”œβ”€β”€ timpani-o/ # timpani-o component LLDs
β”‚ β”‚ └── timpani-n/ # timpani-n component LLDs
β”‚ β”‚ β”œβ”€β”€ timpani-o/ # timpani-o component LLDs (10 docs)
β”‚ β”‚ └── timpani-n/ # timpani-n component LLDs (10 docs)
β”‚ β”œβ”€β”€ features/ # Feature & Requirements
β”‚ β”‚ β”œβ”€β”€ timpani_features.md
β”‚ β”‚ └── requirements/
β”‚ β”‚ └── timpani_requirements.md
β”‚ β”œβ”€β”€ docs/ # Implementation guides
β”‚ β”‚ β”œβ”€β”€ api.md
β”‚ β”‚ β”œβ”€β”€ getting-started.md
Expand All @@ -196,10 +231,12 @@ eclipse_timpani/

## πŸ” Development Checklist

### Step 1: Architecture Review
- [ ] System architecture documentation is complete and accurate
- [ ] gRPC architecture addresses all communication requirements
- [ ] Component boundaries are clearly defined
### Step 1: High-Level Architecture Review
- [ ] HLD: System design documentation is complete and accurate
- [ ] HLD: gRPC architecture addresses all communication requirements
- [ ] HLD: Technology stack and deployment patterns documented
- [ ] Feature specifications with mermaid diagrams reviewed
- [ ] Requirements (FR/NFR) traceability established

### Step 2: Component LLD Review
- [ ] AS-IS architecture accurately reflects legacy implementation (C/C++)
Expand Down Expand Up @@ -230,9 +267,9 @@ eclipse_timpani/
- Consult [GitHub Issues](https://github.com/eclipse-timpani/timpani/issues)

### For Architecture Clarifications
- Refer to [timpani Architecture](architecture/timpani_architecture.md)
- Review [gRPC Architecture](architecture/grpc_architecture.md)
- Check component LLDs in [LLD/timpani-o/](architecture/LLD/timpani-o/) or [LLD/timpani-n/](architecture/LLD/timpani-n/)
- **HLD:** Review [System Design Document](architecture/HLD/timpani_system_design_document.md) or [gRPC Architecture](architecture/HLD/timpani_rust_grpc_architecture.md)
- **Features:** Check [Feature Specification](features/timpani_features.md) or [Requirements](features/requirements/timpani_requirements.md)
- **LLD:** Check component LLDs in [LLD/timpani-o/](architecture/LLD/timpani-o/) or [LLD/timpani-n/](architecture/LLD/timpani-n/)

### For Development Queries
- Review architecture documentation: `architecture/` β†’ `LLD/` β†’ `docs/`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,17 @@
**Document Information:**
- **Issuing Author:** Eclipse timpani Team
- **Configuration ID:** timpani-arch-grpc
- **Document Status:** Published
- **Last Updated:** 2026-05-13
- **Document Status:** Draft
- **Last Updated:** 2026-05-14

---

## Revision History

| Version | Date | Comment | Author | Approver |
|---------|------|---------|--------|----------|
| 0.0c | 2026-05-14 | Updated legend color scheme: gRPC communication links styled with orange (#f57c00) | LGSI-KarumuriHari | - |
| 0.0b | 2026-05-13 | Added diagram legends highlighting timpani-o and timpani-n scope | LGSI-KarumuriHari | - |
| 0.0a | 2026-05-13 | Initial gRPC architecture documentation | Eclipse timpani Team | - |

---
Expand Down Expand Up @@ -110,11 +112,11 @@ graph TB
TimpaniO <-->|"D-Bus libtrpc<br/>(custom serialization)"| Node2
TimpaniO <-->|"D-Bus libtrpc<br/>(custom serialization)"| NodeN

style Pullpiri fill:#e1f5ff
style TimpaniO fill:#ffe1e1
style Node1 fill:#e1ffe1
style Node2 fill:#e1ffe1
style NodeN fill:#e1ffe1
style Pullpiri fill:#f5f5f5,stroke:#757575,stroke-width:2px
style TimpaniO fill:#ffe1e1,stroke:#d32f2f,stroke-width:3px
style Node1 fill:#e1ffe1,stroke:#388e3c,stroke-width:3px
style Node2 fill:#e1ffe1,stroke:#388e3c,stroke-width:3px
style NodeN fill:#e1ffe1,stroke:#388e3c,stroke-width:3px
```

**Issues:**
Expand Down Expand Up @@ -143,16 +145,29 @@ graph TB
NodeN["Node N<br/>timpani-n<br/>(gRPC Client)"]
end

subgraph Legend[" "]
L1["timpani-o (Our Scope)"]
L2["timpani-n (Our Scope)"]
L3["gRPC Communication (Our Scope)"]
L4["External Systems"]
end

Comment thread
LGSI-KarumuriHari marked this conversation as resolved.
Pullpiri <-->|"gRPC<br/>SchedInfoService<br/>FaultService"| TimpaniO
TimpaniO <-->|"gRPC/HTTP2<br/>NodeService"| Node1
TimpaniO <-->|"gRPC/HTTP2<br/>NodeService"| Node2
TimpaniO <-->|"gRPC/HTTP2<br/>NodeService"| NodeN

style Pullpiri fill:#e1f5ff
style TimpaniO fill:#ffd4a3
style Node1 fill:#c8e6c9
style Node2 fill:#c8e6c9
style NodeN fill:#c8e6c9
style Pullpiri fill:#f5f5f5,stroke:#757575,stroke-width:2px
style TimpaniO fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style Node1 fill:#e8f5e9,stroke:#388e3c,stroke-width:3px
style Node2 fill:#e8f5e9,stroke:#388e3c,stroke-width:3px
style NodeN fill:#e8f5e9,stroke:#388e3c,stroke-width:3px
style L1 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style L2 fill:#e8f5e9,stroke:#388e3c,stroke-width:3px
style L3 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style L4 fill:#f5f5f5,stroke:#757575,stroke-width:2px

linkStyle 0,1,2,3 stroke:#f57c00,stroke-width:3px,color:#f57c00
```

**Improvements:**
Expand Down Expand Up @@ -210,18 +225,45 @@ graph TB
SchedLoopN --> BPFN
end

subgraph Legend[" "]
L1["timpani-o (Our Scope)"]
L2["timpani-n (Our Scope)"]
L3["gRPC Communication (Our Scope)"]
L4["External Systems"]
end

SchedInfoClient -->|"gRPC :50051<br/>AddSchedInfo"| SchedInfoSvc
FaultServer <-->|"gRPC :50052<br/>NotifyFault"| TimpaniO

NodeClient1 <-->|"gRPC :50051<br/>NodeService"| NodeSvc
NodeClient2 <-->|"gRPC :50051<br/>NodeService"| NodeSvc
NodeClientN <-->|"gRPC :50051<br/>NodeService"| NodeSvc

style PullpiriSystem fill:#e1f5ff
style TimpaniO fill:#ffd4a3
style Node1 fill:#c8e6c9
style Node2 fill:#c8e6c9
style NodeN fill:#c8e6c9
style PullpiriSystem fill:#f5f5f5,stroke:#757575,stroke-width:2px
style SchedInfoClient fill:#f5f5f5,stroke:#757575,stroke-width:2px
style FaultServer fill:#f5f5f5,stroke:#757575,stroke-width:2px
style TimpaniO fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style SchedInfoSvc fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
style GlobalSched fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
style NodeSvc fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
style Node1 fill:#e8f5e9,stroke:#388e3c,stroke-width:3px
style Node2 fill:#e8f5e9,stroke:#388e3c,stroke-width:3px
style NodeN fill:#e8f5e9,stroke:#388e3c,stroke-width:3px
style NodeClient1 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style SchedLoop1 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style BPF1 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style NodeClient2 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style SchedLoop2 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style BPF2 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style NodeClientN fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style SchedLoopN fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style BPFN fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style L1 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style L2 fill:#e8f5e9,stroke:#388e3c,stroke-width:3px
style L3 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style L4 fill:#f5f5f5,stroke:#757575,stroke-width:2px

linkStyle 8,9,10,11,12 stroke:#f57c00,stroke-width:3px,color:#f57c00
```

### Layer Diagram
Expand Down Expand Up @@ -250,17 +292,38 @@ graph TD
Kernel["Linux Kernel<br/>β€’ sched_setscheduler<br/>β€’ sched_setaffinity<br/>β€’ eBPF subsystem<br/>β€’ POSIX timers"]
end

subgraph Legend[" "]
L1["timpani-o (Our Scope)"]
L2["timpani-n (Our Scope)"]
L3["gRPC Communication (Our Scope)"]
L4["External Systems"]
end

Comment thread
LGSI-KarumuriHari marked this conversation as resolved.
Pullpiri --> Services
HTTP2 --> TimpaniO
HTTP2 --> TimpaniN
TimpaniO --> Kernel
TimpaniN --> Kernel
WorkloadApps -.->|scheduled by| TimpaniN

style AppLayer fill:#e3f2fd
style gRPCLayer fill:#fff3e0
style BusinessLayer fill:#f1f8e9
style OSLayer fill:#fce4ec
style AppLayer fill:#f5f5f5,stroke:#757575,stroke-width:2px
style Pullpiri fill:#f5f5f5,stroke:#757575,stroke-width:2px
style WorkloadApps fill:#f5f5f5,stroke:#757575,stroke-width:2px
style gRPCLayer fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style Services fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style Tonic fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style HTTP2 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style BusinessLayer fill:#e8f5e9,stroke:#388e3c,stroke-width:3px
style TimpaniO fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style TimpaniN fill:#e8f5e9,stroke:#388e3c,stroke-width:3px
style OSLayer fill:#fce4ec,stroke:#c2185b,stroke-width:2px
style Kernel fill:#fce4ec,stroke:#c2185b,stroke-width:2px
style L1 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px
style L2 fill:#e8f5e9,stroke:#388e3c,stroke-width:3px
style L3 fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style L4 fill:#f5f5f5,stroke:#757575,stroke-width:2px

linkStyle 0,1,2,3,4 stroke:#f57c00,stroke-width:3px,color:#f57c00
```

---
Expand Down
Loading
Loading