4. Data Movement
This section describes runtime data flow sequences.
Architecture principles and ownership rules are defined in Section 3.
4.1 Flow Boundaries
- Registration and Timing do not exchange data directly;
- both flows terminate in Event domain;
- Public Results Portal consumes published data from Event.
4.2 Registration → Event
Typical trigger:
- manual import;
- scheduled/automated sync flow.
Processing model:
- Registration data is transformed into Event participant context;
- Event stores its own participant objects;
- this is snapshot-based transfer, not live shared state;
- current operational baseline is export from Registration and manual import into Event.
Edit-lock behavior after transfer:
- in registration configuration (from the start), organizer defines whether participants are allowed to edit their own application;
- once a participant is transferred to Event, editing in Registration is locked for the transferred scope to prevent cross-domain conflicts;
- after transfer, participant corrections should be handled in Event context, not by modifying already transferred registration data.
Multi-event registration behavior:
- edit lock is applied only to the specific stage/event where the participant was transferred;
- for other stages not yet transferred, participant edits can still be allowed if organizer settings permit it.
4.3 Timing Devices → Timing App → Cloud Timing Storage → Event
Supported capture channels:
- BLE timing;
- RFID timing;
- manual timing;
- external source timing.
Flow:
- device/source (RFID/BLE/manual/external source) produces timing records;
- records are persisted locally where applicable and sent to Cloud Timing Storage;
- cloud checks checkpoint mapping (data subscription) for Event routing;
- mapped records are forwarded to Event checkpoint storage;
- Event recalculates results.
Cloud retention behavior:
- mapped records are forwarded to Event and retained in cloud storage;
- unmapped records remain only in cloud storage until mapping is configured.
Operational notes:
-
Session start modes
- file-based mode: create new file or continue existing file;
- checkpoint-bound mode: select event + checkpoint directly;
-
Offline behavior
- both modes support offline capture after session start;
- offline session start is possible only in file-based mode;
- checkpoint-bound mode requires internet only at start/binding;
- if internet drops later, records are synced automatically when connectivity returns;
-
Ownership model
- in file-based mode, cloud file owner is the timing operator;
- in checkpoint-bound mode, ownership is bound to event context;
-
Routing rule
- Timing → Event propagation requires checkpoint data subscription mapping and required permissions;
- cross-domain synchronization is one-way by design, so Event-side corrections are not written back into source-domain records;
-
Cloud retention and mapping edge-cases
- cloud records are always retained; if data subscription is not configured, records are not routed to Event;
- with sufficient permissions, one file-based cloud log may be mapped to multiple checkpoints (edge-case);
- file-based cloud logs may also be mapped across checkpoints from different events (edge-case);
-
Manual import path
- timing data can also be manually imported directly to an Event checkpoint.
4.4 Event → Public Results Portal
Flow:
- Event maintains up-to-date result state as new data arrives;
- Public Results Portal (frontend app) requests results from backend endpoints;
- users consume race outcomes via public pages.
Portal output is request-driven (refresh/poll behavior): each request returns the latest available data for the selected query.
Typical query filters include:
- age group or category filters;
- placement ranges (for example, top 100);
- event/race/checkpoint context.
- detailed results for an individual participant.