We are building an Order Management System for the ASX market - we're planning on WPF clients getting content and pushing orders to middle-ware and the middle-ware going off to a third party do the heavy lifting with regards to retrieving the required data and push orders to an order-pad. For the task of pushing the content (Market Depth, Morning Summary, etc) to the WPF clients, the proposal is as follows:-
Because there are vast numbers of stocks available for each client to search/investigate, I was wanting to make the clients get data from the middle-ware via publisher/subscriber - however the middleware (at the time the client subscribes), doesn't know anything about the stock (it needs to be reactive and go to the exchange [if another client hasn't requested it in parallel] to get the stock price, etc when requested by the client) - hence the client is going to subscribe to something that hasn't been published by the middleware yet.
I think with SignalR/RX we can get around the slightly different pub/sub flavour but I am mostly wanting to know whether the above is a reasonable approach. Is this the way such a scenario is generally addressed ? Or should we try to literally get 'everything ?' then store that on our database repository then waiting for clients to subscribe (as we have everything) whatever the client subscribes to will be known (and hence published prior to the subscription request)
Because there are vast numbers of stocks available for each client to search/investigate, I was wanting to make the clients get data from the middle-ware via publisher/subscriber - however the middleware (at the time the client subscribes), doesn't know anything about the stock (it needs to be reactive and go to the exchange [if another client hasn't requested it in parallel] to get the stock price, etc when requested by the client) - hence the client is going to subscribe to something that hasn't been published by the middleware yet.
I think with SignalR/RX we can get around the slightly different pub/sub flavour but I am mostly wanting to know whether the above is a reasonable approach. Is this the way such a scenario is generally addressed ? Or should we try to literally get 'everything ?' then store that on our database repository then waiting for clients to subscribe (as we have everything) whatever the client subscribes to will be known (and hence published prior to the subscription request)