EVE-Tools / element43

Market, Trade and Industry Manager for EVE Online
BSD 3-Clause "New" or "Revised" License
81 stars 25 forks source link

Implement region/type change streaming in esi-markets #46

Closed zweizeichen closed 5 years ago

zweizeichen commented 6 years ago

Whenever esi-markets detects an update of an order within a market in a region it saves the matching combination of regionID and typeID. At the moment this mechanism is only used for logging. This describes an endpoint for streaming these combinations as updates occur. Clients like vue43 could then update their local view when receiving such a region/type pair resulting in 'real-time' display of market data. Also, more advanced market statistics could be reactively generated in downstream services such as market-stats (95th percentile...). We could even use that change detection mechanism for implementing an order watching and notification service.

There already is dummy code in esi-markets for this. The 'source' stream could be added to the store or its external interface could be used. Given the fact that the gRPC implementation already has access to the store for querying orders it would be easy to add the source stream to the store instance, too.

zweizeichen commented 5 years ago

We probably should wait a bit until the Rust team gets their async stuff sorted out.

eskwire commented 5 years ago

Any update?

zweizeichen commented 5 years ago

Hi there, sorry no ETA. I can try to take a stab at this some time in the next few days, however I can't promise anything.

zweizeichen commented 5 years ago

Took a little fiddling, but it should work now 🙂 Please consider this implementation experimental as I did not invest much time into testing. It would be great if you could provide some feedback after running it in production for a while.