KCK

KCK (or the Knowledge Construction Kit) is a framework, like Ruby-on-Rails, Django or Laravel, but for creating HTTP micro-services for data.

It's super-easy to build a web service that returns complex database interactions FAST. You define the data you need and KCK figures out how to keep that data fresh. And service consumers get lightning-fast responses to their queries.

This project is available on Gitlab.

KCK

KCK (or the Knowledge Construction Kit) is a framework, like Ruby-on-Rails, Django or Laravel, but for creating HTTP micro-services for data.

It's super-easy to build a web service that returns complex database interactions FAST. You define the data you need and KCK figures out how to keep that data fresh. And service consumers get lightning-fast responses to their queries.

This project is available on Gitlab.

Design Criteria

The problem KCK addresses has to do with serving complex data products for "interactive" use.

The basic design of the KCK cache originally powered the data pipeline for a real estate market analysis engine. Basically, the incoming sales data for a given market was preprocessed and made available via a key-value storage engine to the "interactive" report generator, which would return a product in a couple of minutes that, without the preprocessed data, would have taken about 22 hours to generate from the raw data.

Like it's predecessor, KCK uses a key/value storage mechanism to make data products available to applications that depend on its data. KCK comes with a RESTful HTTP service that makes efficient calls to Apache's Cassandra. Both the HTTP service and Cassandra scale linearly with additional nodes to effect virtually unlimited scaling for reads.

KCK also allows for multiple SQL data sources, so it's easy to assign reads to a pool of slave databases while restricting writes to the single master in a replicating cluster.

Implementation

This project is still in early pre-alpha stage.

Hilights

The most interesting things about KCK at the moment are:

  • for systems using KCK exclusively as the application data storage layer, KCK will keep data fresh via a simple dependency specification such that an update to a given table will automatically trigger a refresh of all data that depends on it
  • with its RESTful API and JWT authentication, KCK will be a highly-performant and simple choice for backend services for a Javascript-based application built on Angular or React
  • because Cassandra allows it with conditional updates, KCK will have lockless cache updates that will allow it to be a LOT faster and less-squirrelly under load than its predecessors