Main definitions and concepts used in the TimeBase ecosystem

TimeBase is a high-performance event-oriented time-series database with embedded data modeling and serialization functionality, streaming system and messaging middleware developed by Deltix.

Message - a message describes a specific event, and is stored or edited as a unit. Every message in TimeBase is automatically associated with a moment in absolute time and an entity key. The entity is an abstract concept that identifies the object, to which the event relates the most. A message contains number of data fields according to the message structure. There are two required fields - a symbol (sometimes called key), and a timestamp.

Symbol - a key that describes a specific time-series source (e.g. in IoT it may be a sensor id, or trading activity for specific security).

Class Definition - describes structure of a message. The class definition lists the fields included in messages of this class, along with their names, data types, limits, and precision.

Content Class - a class that describes stream messages.

Instrospector - API to create class hierarchy from specific Java or C# class definitions.

Stream - a collection of messages ordered by time with a predefined structure.

  • Polymorphic Stream - a stream containing messages of several classes.
  • Fixed Type Stream - a stream containing messages of a single specific class.
  • Durable Stream - the content of durable streams is persisted on disk.
  • Transient Stream - in-memory stream is not persisted anywhere. Messages are stored in a memory buffer, which acts as a queue with one tail and multiple heads.
  • Unique Stream - a stream (Durable or Transient) that supplies a copy of last-known values for each symbol to new stream subscribers.

Topic - a high-performance messaging channel that directly connects data Producers and Consumers (via UDP or IPC).

Loader - API for data producers. Publishes messages into TimeBase streams.

Cursor - API for data consumers. Reading data from one or many TimeBase streams according to the subscriptions.

Live Cursor - reading data ‘live’ from one or many TimeBase streams.

Data Cache - LRU cache in memory for TimeBase data.

Inheritance - message classes can inherit from other message classes. TimeBase supports single inheritance only, just like Java and C#. The inheritance hierarchy forms a tree-like structure.

Space - data partition.