Timus is an exceedingly simplistic time series data storage server. Currently it stores all data using sqlite3 ("main.db" database file is created in the working directory immediately after launch).
Presently there is no request validation/sanitization, no error handling, no nothing.
Well, clone the repository, run node install
, then node server.js
. Whatever, it works,
but it definitely not production-ready yet.
To store a time series event:
POST /put/:tag
: store arbitrary JSON data, tagged by a 'tag' parameter.
returns:
{"time": 1519522799951}
(an assigned timestamp in epoch milliseconds)
To get your content stored at specific time interval:
GET /get/:tag/:from/:to
(:from and :to are in epoch milliseconds)
returns:
a multiline JSON looking like this:
{"time":1519522799951,"content":{"some":"data"}}
{"time":1519522801122,"content":{"also":"data"}}
(JSON content is not escaped)
- parameters validation
- error handling
- pagination
- performance tests
- if can't handle e.g. 10 GB data / 50 tags, add PostgreSQL / TimescaleDB support
- primitive aggregator functions (at least exists/count), passed to SQL
- dockerfile
- Javascript aggregator functions
- Websocket data ingestion
- Websocket subscriptions for tag
- Webscale backend (Cassandra/Kafka), DCOS/kubernetes support, establishing new standard for time series storage, TechCrunch, Y Combinator, series A, ???, profit!