1---2name: design-document3description: Design document writing conventions. Use when writing or reviewing technical design documents.4---5# Design Document Conventions67## 1. Background / Problem Statement89### 1.1 Background and Pain Points10- Describe current system/module limitations and deficiencies11- List specific scenarios, metrics, or incident cases that triggered this design1213### 1.2 Impact Scope14- Affected modules, microservices, APIs, data stores, third-party dependencies15- Potential impact on performance, reliability, cost, maintainability16- Forward/backward compatibility analysis1718### 1.3 Constraints19- Compliance/security/performance/resource restrictions20- External system or infrastructure dependencies2122---2324## 2. Design Goals2526### 2.1 Functional Goals27- List Must/Should/Could core capabilities by priority2829### 2.2 Non-Functional Goals30- Performance (throughput, latency, concurrency, resource usage)31- Scalability, maintainability, testability, observability32- Reliability (fault tolerance, HA, degradation, rollback strategies)3334### 2.3 Constraint Goals35- Backward compatibility, API stability36- Security and compliance requirements3738---3940## 3. Technical Design4142### 3.1 Architecture Diagram43- Use Mermaid for high-level component diagrams with data/control flow4445### 3.2 Detailed Flowcharts46- Key business flows, exception flows, retry/compensation with timing and triggers4748### 3.3 Thread/Concurrency Model49- Thread lifecycle, inter-thread communication (locks, condition variables, queues, Actor patterns)50- Sequence diagrams for concurrency interactions5152### 3.4 Core Classes and Data Structures53- Class diagrams showing main classes, interfaces, inheritance/composition relationships54- Key data structure fields, lifecycle, thread-safety strategy5556### 3.5 Key Algorithms or Protocols57- Pseudocode or flow for pub/sub, load balancing, retry backoff, etc.58- State machine / protocol state transition diagrams5960### 3.6 Error Handling and Recovery61- Error classification, exception stack, retry strategies, degradation plans62- Monitoring metrics, alert trigger conditions and levels6364### 3.7 Deployment and Operations65- Configuration items, hot-update mechanisms, canary and rollback strategies66- CI/CD, container, Service Mesh, Kubernetes resource considerations6768---6970## 4. Unit Testing7172### 4.1 Test Scope and Goals73- Cover core logic, boundary conditions, concurrency scenarios, exception paths7475### 4.2 Test Environment and Tools76- Google Test/Mock version, necessary third-party stubs/fakes7778### 4.3 Test Scenarios and Cases79| Case ID | Scenario | Input | Expected Output/Behavior | Mock Dependencies |80|---------|----------|-------|--------------------------|-------------------|81| TC-01 | Normal single log push | Single valid LogRecord | Returns SUCCESS, buffer size +1 | None |82| TC-02 | Buffer full | capacity=N filled | Throws BufferOverflowException | None |83| TC-03 | Concurrent push | Multi-thread simultaneous push | No data loss, order/final consistency matches design | MutexMock |84| TC-04 | flush clears | M items exist, then flush | Returns M items, buffer size=0 | TimeProviderMock |8586### 4.4 Boundary and Exception Testing87- Empty input, invalid input, extreme capacity, network/disk fault injection8889### 4.5 Performance Benchmarking (optional)90- Throughput, latency, CPU/Memory profile; comparison with baseline9192---9394## Notes9596- **Do not** include project management info (estimates, schedules, milestones, Gantt charts)97- Code examples must follow team C++ coding standards (see `skills/project-knowledge/`)98- Test case naming: `<Module>_<Function>_<Number>` for CI coverage tracking