A key-value database API with aggregations built in
Dynatron is a key-value and document database API from Cyber Labs Solutions. It is for teams that store items by key and also need counts, sums and averages over them.
What it does
Dynatron stores items in tables and exposes them through an HTTP API with JSON requests. You create a table with a key schema, write items, and read them back by key or by a key condition. It also runs aggregate queries over a table in the same API. Dynatron is in early development, and the operations below are the ones implemented so far.
- Tables. Create, describe, list and delete tables. Each table has a partition key and an optional sort key.
- Items. Put, get and delete items by key. Items are stored as JSON documents.
- Query and scan. Query by key condition, including a prefix match on the sort key, in ascending or descending order. Scan a whole table. Both return results in pages.
- Aggregates. Run COUNT, SUM and AVG over a table, optionally grouped by one attribute and limited by a key condition.
- Clear refusals. Request options the service does not implement are rejected with an error. They are never ignored.
Who it is for
Dynatron is for engineering teams whose applications keep records in a key-value or document database and who want totals and counts without exporting the data to another system. If you are weighing a data layer or planning a migration, the diagnostic is a fixed-scope way to get a written plan first.
How it works
- A client sends an HTTP POST. A header names the operation and the body holds the JSON request.
- Table definitions are kept in a metadata store. The items of each table are kept in storage dedicated to that table.
- Query, scan and aggregate requests become SQL against that table's storage. The results come back as JSON.
- Deleting a table removes its metadata and its items.
What it is built for
These are design facts taken from the code.
- Separate storage per table. Each table's items live apart from every other table's items.
- Checked inputs. Attribute names used in aggregates and grouping are validated before they reach a SQL statement.
- Strict behavior. A write that carries a condition the service cannot evaluate fails. It does not run as an unconditional write.
Aggregates without a separate pipeline
An aggregate request lists the functions to run, an optional attribute to group by, and an optional key condition. The response is a list of result rows. COUNT, SUM and AVG are available. Any other function is rejected with a validation error.
Dynatron FAQ
Which operations does Dynatron support?
Creating, describing, listing and deleting tables. Putting, getting and deleting items. Query, scan and aggregate. Other operations are not implemented and return an error.
Which aggregate functions are available?
COUNT, SUM and AVG. You can group the result by one attribute and limit it with a key condition.
What happens when I send an option Dynatron does not support?
The request is rejected with a validation error. This applies to options such as condition expressions, filter expressions and projections, so a conditional write cannot silently become an unconditional one.
Where is the data stored?
Table definitions are stored in a metadata store. Items are stored as JSON documents in SQL storage dedicated to each table.
Book a free review