question

Upvotes
Accepted
89 2 6 9

for example there was a disconnect what to do?

Refinitiv Real-Time feed

For example, I receive data in real time and build 1 minute bars in my application.

For some reason, there is a 15 minute disconnect.

Reconnecting, what is the fastest way for me to get lost 15 minutes?

You have to wait 2 hours in TRTH, will there be historical data for these 15 minutes or is there another way?

Give an answer from the developer's point of view, best practice in such a hypothetical situation.

elektronrefinitiv-realtimeelektron-sdkdisconnection
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

1 Answer

Upvote
Accepted
23k 22 9 14

Hello @s61670,

The main idea is absolutely right: if part of the realtime stream is missed, and it is required, it will have to be recovered from history, when the history is verified, normalized and becomes available.

The best practice, and the design to be chosen, in my view, as developer, is fully dependent on how undesirable this occurrence will be for your organization, and how much your organization would be willing to invest into building for failure and outage prevention, as well as the recovery in the rare scenarios when it happens.

For fear of stating the obvious :), a production application should be designed for robustness, so any expected outages should be limited to environment-dependent issues, such as connectivity loss and hardware failure, not an application bug or malfunction. And these types of streaming service interruption, environment-caused, can easily take more then 15 mins.

A production application should be designed for error handling and reporting, be it logging, notification, per requirements of your organization.

Next, a common approach is to maintain two connections to different endpoints, so that if the connectivity becomes unavailable to one of the endpoints, the application fails over and is able to continue consuming from the other, available, endpoint. EMA API, that is part of Refinitiv Real-Time SDKs Java and C++ versions, has the provision of ChannelSet/channel group, and will automatically hand this aspect for you as long as you have the connectivity to the two endpoints provisioned, just will have to configure it via EMA config. For Refinitiv Real-Time Webscoket, this type of solution, if required, has to be provided by the designer of the app.

Next, if the public internet connectivity is not sufficient, there is an option of establishing connectivity over a private line.

And there is an option of deployed infrastructure being installed on your site, so you connect to the local infra, that carries the corresponding cost of maintenance by your local market data group/admin.

In my view, the best approach to design and provisioning for stability and reliability, is a broad topic, often it is very important, and should be discussed between your organization's business stakeholders, network admin/group and Refinitiv account manager, who may be able to help by suggesting the best option, knowing your organization's specific requirements, and helping to provision for it.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Click below to post an Idea Post Idea