For a deeper look into our Elektron API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
5 4 2 3

Receiving duplicate update messages with Webscoket

Hi Team,

We are using Websocket for getting message updates. We are interested to receive json update messages for RICs only if any of the 3 fields ASK, BID and MID_PRICE changes.

To limit the fields in update message we have used "Views" in request where we have mentioned the above required fields. However we are still getting duplicate messages(having same bid, ask and midprice as before) for RICs.

So is it something that other fields which we have not mentioned in Views, but it is still considered as an Update even if clients don't need those fields update.

Request:

{
"ID": 2,
"View": [
  "ASK",
  "BID",
  "MID_PRICE"
],
"Key": {"Name": [
  "JPY="
]}
} 

Below is the response format that we received:

{
  "Type": "Update",
  "Fields": {
    "ASK": 111.52,
    "BID": 111.49,
    "MID_PRICE": 111.51
  },
  "DoNotConflate": true,
  "ID": 59,
  "SeqNumber": 59310,
  "UpdateType": "Unspecified",
  "Key": {
    "Service": "ELEKTRON_DD",
    "Name": "JPY="
  }
}
elektronrefinitiv-realtimeelektron-sdkwebsockets
icon clock
10 |1500

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

Upvotes
Accepted
24.4k 53 17 14

Hello @amar.a.panigrahi

This is an expected behavior of ADS and TREP infrastructure. The Views feature just lets ADS/TREP (in this case is the amer-3.pricing.streaming.edp.thomsonreuters.com server) to “filter out” uninterested fields out of Refresh and Update messages to the application.

When the application receives duplicate View update messages from TREP, it means there are other “uninterested updated fields” from Feed/Exchange, but TREP filter out those fields from the message to API.

Example of All Fields Update messages:

RECEIVED: //Update 1 
[
  {
    "ID": 2,
    "Type": "Update",
    "UpdateType": "Unspecified",
    "DoNotConflate": true,
    "Key": {
      "Service": "ELEKTRON_DD",
      "Name": "JPY="
    },
    "SeqNumber": 4094,
    "Fields": {
      "BID": 111.13, #BID
      "PRIMACT_1": 111.13,
      "ASK": 111.15, #ASK
      ...
      "ACVOL_1": 62802, #Updated Field
      "BID_TICK_1": "⇧",
      "MID_PRICE": 111.14, #MIDPrice
    }
  }
]
RECEIVED: //Update 2
[
  {
    "ID": 2,
    "Type": "Update",
    "UpdateType": "Unspecified",
    "DoNotConflate": true,
    "Key": {
      "Service": "ELEKTRON_DD",
      "Name": "JPY="
    },
    "SeqNumber": 4158,
    "Fields": {
      "BID": 111.13,    #BID
      "PRIMACT_1": 111.13,
      "ASK": 111.15,    #ASK
      ...
      "ACVOL_1": 62803, #Updated Field
      "MID_PRICE": 111.14 #MIDPrice
    }
  }
]

When TREP receives the above update messages from Feed/Exchange, TREP will send just BID, ASK and MID_PRICE fields for the View consumer.

Example of View Update messages:

RECEIVED: //Update 1
[
  {
    "ID": 2,
    "Type": "Update",
    "UpdateType": "Unspecified",
    "DoNotConflate": true,
    "Key": {
      "Service": "ELEKTRON_DD",
      "Name": "JPY="
    },
    "SeqNumber": 4094,
    "Fields": {
      "BID": 111.13,
      "ASK": 111.15,
      "MID_PRICE": 111.14
    }
  }
]
RECEIVED: // Update 2
[
  {
    "ID": 2,
    "Type": "Update",
    "UpdateType": "Unspecified",
    "DoNotConflate": true,
    "Key": {
      "Service": "ELEKTRON_DD",
      "Name": "JPY="
    },
    "SeqNumber": 4158,
    "Fields": {
      "BID": 111.13,
      "ASK": 111.15,
      "MID_PRICE": 111.14
    }
  }
]
icon clock
10 |1500

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

Upvotes
24.4k 53 17 14

@amar.a.panigrahi

Basically, the Elektron WebSocket API just receives an incoming data from ADS server and passes it to the application as it is.

I can replicate the issue with ADS 3.2.1 and your JSON request message. The application receives duplicate update messages.

RECEIVED: 
[
  {
    "ID": 2,
    "Type": "Update",
    "UpdateType": "Unspecified",
    "DoNotConflate": true,
    "Key": {
      "Service": "ELEKTRON_DD",
      "Name": "JPY="
    },
    "SeqNumber": 4094,
    "Fields": {
      "BID": 111.13,
      "ASK": 111.15,
      "MID_PRICE": 111.14
    }
  }
]
RECEIVED: 
[
  {
    "ID": 2,
    "Type": "Update",
    "UpdateType": "Unspecified",
    "DoNotConflate": true,
    "Key": {
      "Service": "ELEKTRON_DD",
      "Name": "JPY="
    },
    "SeqNumber": 4158,
    "Fields": {
      "BID": 111.13,
      "ASK": 111.15,
      "MID_PRICE": 111.14
    }
  }
]

To let us verify this behavior in detail could you please give us your ADS version that encounter the problem?

icon clock
10 |1500

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

I am not sure about the ADS version, but below are some configuration that we use to get the Market price:

reuters.host=amer-3.pricing.streaming.edp.thomsonreuters.com
reuters.port=443
reuters.scope=trapi

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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