Skip to content

Latest commit

 

History

History
50 lines (39 loc) · 3.17 KB

TibRv.md

File metadata and controls

50 lines (39 loc) · 3.17 KB

In draft

TIBCO Rendevous

TIBCO's Rendevous product is a popular low latency point-to-point (unicast) and broadcast (multicast) communications platform. Its interoperability (C, C++, Java, COM & .NET) have made it popular especially in the Captial Markets (Investment Banking) industry for distributing trade and price information internally.

The .NET Api is a fairly cumbersome port from I assume Java. Documentation is available from http://docs.tibco.com if you are happy to create a username & password to join the site sigh. The aim of these snippets is to allow you to use TibRv with Rx and to follow the general principals of lazy evaluation and deterministic clean up.

TibRv basics

TibRv (the common abbreviation for TIBCO Rendevous) has two main usages that will be covered here. First we will look at consuming Multicast messages. This is done by listening to a TibRv Subject (not to be confused with an Rx Subject). Second we will look at consuming Unicast message. TibRv does this with a specialisation of a TibRv Subject called an Inbox.

###Subjects A Subject in TibRv is just a string that defines and Endpoint. Publishers will publish messages to a Subject and consumers can listen to a specific Subject. Example Subjects:

  • dept.product.service.datatype
  • Fx.Pricing.Spot.EURUSD
  • users.login.notification
  • EComm.orders.accepted

A consumer will then need to know the Subject that they want to subscribe to. A neat feature of TibRv is the ability to use wildcards when consuming events. For example these are valid strings to use to subscribe to a subject

  • Fx.Pricing.Spot.EURUSD
  • Fx.Pricing.Spot.*
  • Fx.Pricing.*.EURUSD

In the first sample above, the consumer will receive any data that is published to the "Fx.Pricing.Spot.EURUSD" Subject. These could be Foreign Exchange Rates for the Euro currency to the US Dollar currency (i.e. the EUR/USD Currency Pair).

In the second example, the consumer has subscribed to all Subjects that start with "Fx.Pricing.Spot.". In practice this could get us Foreign Exchange Rates for other currencies, perhaps Euro to Great British Pound (Fx.Pricing.Spot.EURGBP), or New Zealand Dollar to Japanese Yen (Fx.Pricing.Spot.NZDJPY).

In the third example, the consumer will receive any data that is published to a Subject that starts with "Fx.Pricing." and ends with "EURUSD". In practice this could get us Foreign Exchange Rates for the EUR/USD Currency Pair, but for other Financial Instruments, not just "SPOT". So we may receive "SPOT" data on the "Fx.Pricing.Spot.EURUSD" Subject, but we may also receive "Forward" rates on Subjects like "Fx.Pricing.1W.EURUSD" for "1 Week Forward" data.

###Environment In .NET you will need to specify 3 parameters that define the TibRv environment you want to connect to. These 3 parameters are strings to define

  1. service
  2. network
  3. daemon

Generally these are fixed (in config) for a given deployment (i.e. different values for QA vs Live/Production).