I work in field robotics and we have a central server keeps track of a whole heap of data to do with vehicle state, environment state, tasks, task grouping and so on. There are processes which deal with different parts of this data, and user interfaces which need to be updated when specific parts change.
What I want is a way for systems to connect to the central server and subscribe to a portion of the data. They get all the data piped down to them and any changes sent as they happen. Additionally I'd like to be able to nominate that certain updates can be amalgamated: if a vehicle has moved 3 times but the UI connected does not have much bandwidth then just the latest position is sent.
Currently I'm thinking an in-memory database which keeps track of client subscription queries and calculates deltas to send to them. Is there a better way or existing solution to distributing a data model?