Architecture

Architecture

TimeBase Definition: TimeBase is a high-performance time-series polymorphic event-oriented database and a messaging middleware.

  • Stream: a collection of objects called messages.
  • Message: data records, always associated with a symbol, and almost always tagged with a timestamp.
  • Symbol: a key that describes a specific time-series (e.g. in IoT it may be a sensor id)
  • Class definition: describes structure of messages. The class definition lists the fields included in messages of this class, along with their names, data types, limits, and precision. Every message belongs to a certain class.
  • Polymorphic stream: a stream that contains messages of different classes.
  • Fixed type stream: a stream that contains messages of a single specific class.
  • Content class: a class that describes messages that are expected in a stream.
  • Inheritance: classes can inherit fields from other classes. TimeBase supports single inheritance only, just like Java and C#. The inheritance hierarchy forms a tree-like structure. At present, class fields can only be of primitive (or enumerated) type. Nested classes are not currently supported.
  • Loader: data producers use them to write data into TimeBase
  • Cursors: data consumers use them to read data from TimeBase
  • Unique Stream: a stream that supplies a copy of last-known values to new stream subscribers. Initial set of messages is a snapshot of last messages.
  • Transient Stream: the content of a transient stream is not persisted anywhere. Transient messages are stored in a memory buffer, which acts as a queue with one tail and multiple heads. When data in a transient stream is read by all readers, it is discarded.
  • Durable Stream: when data is written into a durable stream, it is initially retained in memory, and eventually flushed to durable storage.
  • Topic: a high-performance messaging channel that directly connects data Producers and Consumers