Files
obsidian/TallyFlow/TallyFlow-Architecture.md
T
TNB 0bbe00b75e Correct TallyFlow architecture based on source code review in ~/src/
- Core is central and owns MongoDB (not Assets)
- Core: Go backend + Vue.js frontend (no Node.js)
- Verified against tallyflow-web, photomicroservice, tallyflow-iot, tallyflow_mobile, tallyflow-print
- Updated diagram, legend, cards, and description for accuracy
2026-07-07 09:15:19 -04:00

2.2 KiB

TallyFlow Architecture

Diagram: TallyFlow-Architecture-Diagram.html

Overview (Source-Verified)

TallyFlow's architecture is centered on TallyFlow Core, which serves as the single integration hub and owns the primary data store.

Core consists of:

  • Go backend (API layer, business logic, using Echo/gRPC patterns)
  • Vue.js 2 web frontend (tallyflow-web) for asset management, reporting, and configuration
  • MongoDB database (owned by Core) storing the asset registry, tags, photo metadata, zones, events, and audit history

All other components communicate exclusively through Core's REST + WebSocket APIs.

TallyFlow Assets (Mobile) is a Flutter application focused on field operations: lightweight inventory, geiger-counter-style seek & find, fast enrollment, zone movements, and shipping workflows. It syncs with Core.

TallyFlow Capture (PhotoTag) is implemented as a Go microservice (photomicroservice) that handles photo + barcode association for quality control and visual documentation. It stores photo metadata in its own MongoDB collections but registers assets and events back to Core.

TallyFlow Print is a Flutter + Rust application that generates Zebra ZPL-compatible labels and RFID encodings, with optional auto-registration into Core.

IoT is a Rust-based service (tallyflow-iot) that ingests data from fixed RFID readers (Impinj, Zebra) and environmental sensors, pushing real-time tag events and sensor data to Core.

This structure was verified by inspecting the repositories in ~/src/ (tallyflow-web, photomicroservice, tallyflow-iot, tallyflow_mobile, tallyflow-print, etc.).

Key Data Flows

  • Assets (Mobile) ↔ Core: Enrollment, inventory updates, seek/find sync via API
  • Capture → Core: Photo metadata and QC records
  • Print → Core: Print jobs and optional asset registration
  • IoT → Core: Real-time tag/sensor events
  • Core ↔ MongoDB: Core owns and directly manages all persistent data (assets, photos, zones, history)
  • Core Web UI (Vue.js): Operator interface for the full system

Core is the only component that directly owns the database. All other modules are clients or data producers that route through Core.