Skip to main content

Cookbook: Journal + Reporter v0.6

Эталон device-board journal + reporter v0.6 (DBJ4): явный dataflow Journal → Reporter → Report → append в journal. Legacy terminal NewTrack / NewFftTrendsAnalysis (v0.5) пишут в journal напрямую — deprecated до DBJ5.

Device journal (drone track report)

Checklist

1

Journal scope per deviceId

Handle journal:device:{deviceId} или journal:server:{deviceId} — не per-membrane.
2

ReporterRef scoped к journal

GetReporter принимает тот же JournalRef, что будет в PublishReport.
3

Make-report — два node kind

make-report-from-track и make-report-from-analysis — отдельные узлы палитры.
4

ReportRef in-memory до publish

MakeReport* создаёт payload в ReportRuntimeStore; PublishReport читает по handle.
5

Connection-suggest

JournalRef → GetReporter / PublishReport; ReporterRef → make-report*; ReportRef → PublishReport.

Runtime

  1. MakeReport* — host makeReportFromTrack / makeReportFromAnalysis строит ScenarioReportPayload (без append).
  2. ReportRuntimeStore — сохраняет payload; ReportRef доступен на data-out узла.
  3. PublishReport — host publishReport(journalRef, payload)LiveJournalService.appendReport.
  4. Backend routing — client: resolveJournalBackend; server scope при paired → cabinet sync.
Источники:
  • packages/device-board/src/runtime/block-executor.ts
  • apps/client/src/modules/device-board/scenarioMicJournalBridge.ts