Architecture
TimeBase Server
TimeBase Server is the heart of TimeBase where time-series data is stored and processed. The illustration below displays major TimeBase Server components.
Message Bus provides client-server communication via TCP, IPC, UDP, and/or HTTP protocols. Multi-language APIs facilitate integration with TimeBase for external clients.
A TimeBase instance can be perceived as a collection of Streams. Publishers (Loaders) write data into streams. Each Loader can write data only to one specific stream. Several loaders can write data into the same stream at the same time. Subscribers (Cursors) can read data from one or multiple streams based on individual filters like symbol, timestamp, or message class.
Data in TimeBase streams can be stored in persistent storage in the form of Raw Data Files. Persistent Layer provides data retrieval/storing/caching for Durable Streams. LRU cache is used to quickly access active data.
TimeBase can be used as a messaging broker. In this case, stream data is kept in a circular memory buffer and then gets disposed of. This functionality is used by both Transient and Durable streams.
DB Engine is a logical component with the following functionality:
- Time-Series Processor - processes raw data files
- Live Multiplexor - providers multiplexing and ordering data. Orders different logical sources by timestamps
- QQL Processor - logical module responsible for QQL queries execution, interpretation, reading, filtration
TimeBase is not an isolated system. On the ecosystem diagram, you can see how TimeBase can be connected to different data sources and data consumers. See Product Editions for additional information.
- Data Aggregator - a stand-alone application that uses plugins to aggregate time-series data from real-time data feeds, transform source data to a TimeBase format and write it to TimeBase streams
- Data Aggregation Tools - internal and external tools for time series data aggregation and analysis
- ETL Import/Export Tools - applications that can be configured to import/export custom format historical time series data to/from TimeBase messages and streams
- Grafana Plugin - allows visualizing TimeBase streams data in Grafana dashboards
- TimeBase Admin - TimeBase management application
- TimeBase Replicators - data transformation to consumer formats
- Web Gateway - REST/WS client for TimeBase Server that accepts as an input/output data in a JSON format
- Kafka Connector - allows aggregating/exporting time series data from/to Apache Kafka stream processing service
- Loaders/Cursors - public multi-language APIs to write/write data into TimeBase streams