Files
obsidian/TallyFlow/TallyFlow-Architecture.md
T
TNB 4497fabf22 Refine TallyFlow architecture to exactly 5 components
- MongoDB nested inside Core (no longer 6th component)
- IoT → Core connection is dashed (optional)
- Print includes Print UI + Print API note
- Capture shown as native app (not Go/Vue)
- Core Web UI and Print UI as differentiated sub-boxes
- Strict focus on the 5 components: Core, Assets, Print, Capture, IoT
2026-07-07 09:22:29 -04:00

1.7 KiB
Raw Blame History

TallyFlow Architecture

Diagram: TallyFlow-Architecture-Diagram.html

Overview (5 Components)

TallyFlow is built around exactly five primary components, with Core as the central hub that owns the database.

1. Core (Central)

  • Go backend + Vue.js Web UI
  • Owns MongoDB (assets, tags, photos, zones, events)
  • Single API integration point for all other components
  • Handles configuration, reporting, and orchestration

2. Assets (Mobile)

  • Flutter native mobile application
  • Lightweight inventory, geiger-style seek & find, enrollment, zone moves
  • Communicates with Core via REST/WebSocket API

3. Print

  • Flutter + Rust implementation
  • Zebra ZPL-compatible label printing and RFID encoding
  • Includes Print UI for configuration
  • Can also be driven directly via the Print API

4. Capture (PhotoTag)

  • Native mobile application (not Go/Vue)
  • Associates photos with barcodes, work orders, and metadata
  • Focused on quality control and visual documentation
  • Sends data to Core via API

5. IoT

  • Rust-based service
  • Integrates fixed RFID readers (Impinj, Zebra) and environmental sensors
  • Pushes tag events and sensor data to Core (optional / dashed connection)

MongoDB is not a standalone component — it is fully owned and managed inside Core.

Data Flows

  • Assets, Print, Capture → Core: Solid lines (primary, always-available flows)
  • IoT → Core: Dashed line (optional, event-driven)
  • Core Web UI and Print UI are shown as sub-elements within their respective components

This structure was verified by reviewing the actual source repositories in ~/src/. All external modules interact exclusively through Cores API layer.