LOKI should be able to function in a manner that supports multiple users on a server with identical data. This requires database sharing, passing data along from a host instance to a client (e.g. all tracks and data trails) while also accepting and processing commands from clients on the host (e.g. track friend/foe status changes). Database Synchronization thus needs to achieve the following:
- Send data to clients
TrackDatum, TrackFile, TEs, etc. all need to be sent to clients in their entirety and updated when new data comes in
Host should also send included geometry for clients to reference without downloading on their own
Server doesn't need to send track extrapolation data, clients can do that independently
- Receive commands from clients and process them
This is basically all UI-based commands that affect how tracks are classified and if they exist at all
Should not pass data back with few exceptions (e.g. client creates a shared TE or shares geometry)
Clients classified as admins based on username/password (IP verified?) should be able to go in and edit things like data sources, how the database classifies and correlates new data by default, etc. within LOKI itself
Commands should be passed maybe as RPCs? GRPC would be an easy thing to implement here, but it could be homebrewed as well in a pinch.
LOKI should be able to function in a manner that supports multiple users on a server with identical data. This requires database sharing, passing data along from a host instance to a client (e.g. all tracks and data trails) while also accepting and processing commands from clients on the host (e.g. track friend/foe status changes). Database Synchronization thus needs to achieve the following:
- Send data to clients
- Receive commands from clients and process them