why is this ric sending updates when the fid values are not changing?

Options
james_molohon
james_molohon Explorer
edited July 31 in WebSocket API

I am making a streaming request with a view of only 2 fids, and receiving lots of updates with no change in those values. Am i missing something that would only send the update when a fid value is changed? I was surprised, the behavior seems different between rics CZ25 and SRBV5.
example request - {   "ID": 2,  "Domain": "MarketPrice",  "Key": {"Name": ["SRBV5"]  },  "Streaming": true,  "View": ["BID", "ASK"]}
and messages received (within a few seconds):
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1582,"Fields":{"ASK":3367,"BID":3366}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1598,"Fields":{"ASK":3367}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1614,"Fields":{"ASK":3367,"BID":3366}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1630,"Fields":{"ASK":3367,"BID":3366}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1646,"Fields":{"ASK":3367,"BID":3366}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1662,"Fields":{"ASK":3367,"BID":3366}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1678,"Fields":{"ASK":3367,"BID":3366}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1694,"Fields":{"ASK":3367,"BID":3366}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1710,"Fields":{"ASK":3367,"BID":3366}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1726,"Fields":{"ASK":3367}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1742,"Fields":{"ASK":3367}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1758,"Fields":{"ASK":3367,"BID":3366}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1774,"Fields":{"ASK":3367,"BID":3366}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1790,"Fields":{"ASK":3367,"BID":3366}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1806,"Fields":{"ASK":3367,"BID":3366}}]
RX:[{"ID":3,"Type":"Update","UpdateType":"QuotesTrade","DoNotConflate":true,"Key":{"Service":"IDN_RDF","Name":"SRBV5"},"SeqNumber":1822,"Fields":{"ASK":3367,"BID":3366}}]

Answers

  • Hello @james_molohon,

    This is normal behavior.

    The trade-safe conflation algorithm collects all the quotes in a timed queue which is flushed at the conflation interval. Meanwhile any trading activity would also flush the queue, resulting in the subscriber getting the quotes and trades. Since your app is subscribing to a View, its not getting the trade fields which triggered this update.

    The amount of conflation (aka bandwidth optimization) depends on the trading activity of an instrument.