fix(01): revise plans based on checker feedback
- Remove AbstractClickHouseIT and application-test.yml from Plan 01-01, move to Plan 01-03 Task 1 (reduces 01-01 from 15 to 13 files) - Change Plan 01-02 Task 1 tdd="true" to tdd="false" (compile-only verify) - Add DiagramRepository and MetricsRepository flush key_links to Plan 01-02 - Update VALIDATION.md: INGST-06 TTL maps to HealthControllerIT#ttlConfigured* instead of non-existent ClickHouseTtlIT Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -60,7 +60,15 @@ must_haves:
|
||||
- from: "ClickHouseFlushScheduler.java"
|
||||
to: "ClickHouseExecutionRepository.java"
|
||||
via: "insertBatch call"
|
||||
pattern: "repository\\.insertBatch"
|
||||
pattern: "executionRepository\\.insertBatch"
|
||||
- from: "ClickHouseFlushScheduler.java"
|
||||
to: "ClickHouseDiagramRepository.java"
|
||||
via: "store call after drain"
|
||||
pattern: "diagramRepository\\.store"
|
||||
- from: "ClickHouseFlushScheduler.java"
|
||||
to: "ClickHouseMetricsRepository.java"
|
||||
via: "insertBatch call after drain"
|
||||
pattern: "metricsRepository\\.insertBatch"
|
||||
---
|
||||
|
||||
<objective>
|
||||
@@ -127,7 +135,7 @@ public class IngestionConfig {
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto" tdd="true">
|
||||
<task type="auto" tdd="false">
|
||||
<name>Task 1: IngestionService, ClickHouse repositories, and flush scheduler</name>
|
||||
<files>
|
||||
cameleer3-server-core/src/main/java/com/cameleer3/server/core/ingestion/IngestionService.java,
|
||||
@@ -136,15 +144,6 @@ public class IngestionConfig {
|
||||
cameleer3-server-app/src/main/java/com/cameleer3/server/app/storage/ClickHouseMetricsRepository.java,
|
||||
cameleer3-server-app/src/main/java/com/cameleer3/server/app/ingestion/ClickHouseFlushScheduler.java
|
||||
</files>
|
||||
<behavior>
|
||||
- IngestionService.acceptExecutions(list) delegates to WriteBuffer.offerBatch, returns boolean
|
||||
- IngestionService.acceptDiagram(graph) computes content hash, delegates to WriteBuffer.offer
|
||||
- IngestionService.acceptMetrics(list) delegates to WriteBuffer.offerBatch
|
||||
- ClickHouseExecutionRepository.insertBatch uses JdbcTemplate.batchUpdate with all columns including Array columns for processor executions
|
||||
- ClickHouseDiagramRepository.store computes SHA-256 content hash and does INSERT with content_hash dedup
|
||||
- ClickHouseFlushScheduler runs on @Scheduled(fixedDelayString="${ingestion.flush-interval-ms:1000}"), drains each buffer and calls respective repository.insertBatch
|
||||
- ClickHouseFlushScheduler implements SmartLifecycle for graceful shutdown (flush remaining on stop)
|
||||
</behavior>
|
||||
<action>
|
||||
1. Create IngestionService in core module (no Spring annotations -- it's a plain class):
|
||||
- Constructor takes three WriteBuffer instances (executions, diagrams, metrics)
|
||||
|
||||
Reference in New Issue
Block a user