Handle concurrent snapshot requests with overlapping RICs in EMA API

log4.txt

I am working with the EMA API using EMA 3.7.2.0 and have encountered a specific behavior regarding concurrent snapshot batch requests.

I sent two snapshot batch requests simultaneously. The first request contains 3 RIC(BMO.TO, RY.TO, AAB.TO), and the second contained 4 RICs(TD.TO, AC.TO, BMO.TO, RY.TO).

the EMA send outgoing request messages for the distinct items(BMO.TO, RY.TO, AAB.TO, TD.TO, AC.TO) at the beginning, However, after receiving the refresh messages for BMO.TO and RY.TO. it sent another outgoing request message for these two RICs.

This resulted in the second request completing one second later then the first request.

My application might need to handle around 1000 requests per second, and if many of these requests include the same popular RICs(e.g., APPL), it could lead to significant delays.

How can I avoid sending new outgoing requests for RICs already included in the initial outgoing requests

Best Answer

  • Hi @xinjames.chen

    For the benefit of anyone interested in this issue.

    On a seperate conversation - the RT-SDK team have confirmed this is expect behaviour.

    There is a valid use case where an application wants to consume a RIC in streaming mode and then additionally make a snapshot request for the same instrument occasionally.

    For this reason, a new stream is opened each time a RIC is requested - even if an existing stream already exists for the same RIC.

    It is up to the developer to manage their active watchlist to avoid making duplicate request.

Answers

  • @xinjames.chen

    Thank you for reaching out to us.

    It could be the design of the API. If the application sends two subcriptions for the same item, the application will recieve two refresh messages for that item (one refresh message for each subscription). The API will handle this on behalf of the application.

    In order to verify or change the internal implementaion in the API, please contact the API support team direclty via Contact Premium Support.

    However, you need to be a RDC named user in order to access Contact Premium Support. You can contact your Refinitiv account team or sales team direclty for more information regarding a RDC subscription (Refinitiv Developer Connect).

    Otherewise, you can raise this issue to the development team directly via GitHub.