Skip to main content

TimeBase Replicator Market Data Connector

A generic TimeBase-to-TimeBase stream replication connector. Unlike connectors that ingest external market data into a fixed set of message types, TimeBase Replicator copies one or more streams from a source TimeBase server into a target TimeBase server, preserving whatever custom message classes the source stream contains, without requiring the connector to know about those classes in advance.

Features

timebase_replicatorConnector Key
Instrument Types
Custom
Technology
Custom API
Feed Mode
Real-TimeHistorical
Order Book Update Mode
SnapshotIncremental Updates
Message Types
Level 1
Level 2
Level 3
Trades
Funding Rates

Configuration

Data Connector Parameters

ParameterDefault ValueDescription
Source TimeBase URLdxtick://127.0.0.1:8011Source TimeBase URL.
User NameN/ASource TimeBase user name.
PasswordN/ASource TimeBase user password.
Use Dedicated ConnectionfalseUse dedicated connection for source TimeBase.
Compatible With 4.3falseUse the option if you want to connect to 4.3 version of source TimeBase.
Target TimeBase URLdxtick://127.0.0.1:8011Target TimeBase URL.
User NameN/ATarget TimeBase user name.
PasswordN/ATarget TimeBase user password.
Use Dedicated ConnectionfalseUse dedicated connection for target TimeBase.
Source StreamN/ATimeBase stream to replicate.
Target StreamN/AReplication Target TimeBase stream name that will be created during replication. When used inside an Aggregator process, the Replication Target Stream must differ from the Aggregator's own Target Stream (see Behavior Notes).
Replicate All StreamsfalseReplicate all streams from the source TimeBase except system streams. Source and target stream keys are the same for every replicated stream in this mode. Cannot be combined with Specify Streams.
Exclude Streams ListN/AComa-separated streams list.
For example: stream_key1,stream_key2

Only used when Replicate All Streams is enabled.
Specify StreamsfalseEnables an explicit list of source-to-target stream pairs (see Streams List) instead of a single stream or all streams. Unlike Replicate All Streams, this mode allows the target stream name to differ from the source stream name. Cannot be combined with Replicate All Streams.
Streams ListN/AComa-separated streams list.
For example: stream_key:new_stream_key,stream_key2:new_stream_key2

Only used when Specify Streams is enabled.
ModeLiveReplication mode: Live (continuous replication) or Batch (bounded time-range runs driven by the Aggregator's batch schedule).
Reload ModeallowControls what happens when the target stream's schema no longer matches the source stream's current schema (for example, after a new message type or field was added to the source). One of allow, truncate, prohibit.

allow automatically migrates the target stream's schema to match the source. This requires exclusive write access to the target stream; if another process holds a write lock on it, the schema migration fails and replication of that stream stops with an error.
truncate allows the source's truncation events to also truncate the target.
prohibit never changes the target schema automatically; replication stops with an error if the schemas diverge, and manual intervention is required.
Low Latency ModefalsePrefer to minimize latency at the expense of higher CPU usage (one CPU core per process).
Start From Current TimefalseStarts replication from current time.
Use Start IntervalfalseUse start interval.
Interval Start1970-01-01 00:00:00.000Start time of the replication in the 24-hours date time format (YYYY-MM-DD HH:mm:SS.sss).

Default value is 1970-01-01 00:00:00.000.
Use End IntervalfalseUse end interval.
Interval End1970-01-01 00:00:00.000End time of the replication in the 24-hours date time format (YYYY-MM-DD HH:mm:SS.sss).

Default value is 1970-01-01 00:00:00.000.
Replicate All InstrumentstrueReplicate all instruments.
Instruments ListN/AComa-separated instruments list.
For example: EQUITY:AAPL,EQUITY:EPAM,FX:EUR/USD
Instruments List FileN/AAn instruments list file. Each line of the file must contain an instrument.

For example, file instruments.txt:
EQUITY:AAPL
EQUITY:EPAM
FX:EUR/USD
Type Mapping FileN/AFile that contains additional mapping between types and fields in CSV format.

Each line must contain type of field mapping in format:
[SourceStream,]Class,SourceClass,TargetClass
[SourceStream,]Field,SourceClass.SourceField,TargetClass.TargetField


For example, file mapping.txt:
Class,deltix.qsrv.hf.pub.BarMessage,deltix.timebase.api.messages.CustomBarMessage
Field,deltix.qsrv.hf.pub.BarMessage.volume,deltix.timebase.api.messages.BarMessage.totalVolume
SourceStream,Class,deltix.qsrv.hf.pub.BarMessage,deltix.timebase.api.messages.CustomBarMessage

Behavior Notes

Target stream schema follows the source stream, not the Aggregator model configuration. When a target stream does not yet exist, it is auto-created with a schema copied directly from the live source stream at that moment. On every subsequent connection, the connector re-checks that the source and target schemas are still compatible, and applies the Reload Mode behavior described above if they have diverged.

The Aggregator's generic per-field/per-class data model selection (as configured for most other data connectors) does not apply to TimeBase Replicator and has no effect on which message types or fields are replicated. All replicated content is determined entirely by the source stream's own schema.

Replication Target Stream and Aggregator Target Stream must be different. When this connector is configured inside an Aggregator process, the Replication Target Stream and the Aggregator's own Target Stream serve different purposes and must point to different streams. The Aggregator's Target Stream is the stream used for Aggregator process statuses; the Replication Target Stream is the stream where replicated data is written.

Stream pairs are independent. Each source-to-target stream pair configured via Replicate All Streams or Specify Streams runs as its own independent connection with its own connection status and error reporting, so a failure in one stream pair does not affect replication of the others.

Symbology

TBD

Logging

To enable detailed logging, use these lines in the <QSHOME>/config/gflog.xml file:

<logger name="deltix.qsrv.hf.plugins.data.timebase_replicator" level="TRACE">
<appender-ref ref="safeAppender"/>
</logger>