<commit_before># [RESTBase](https://github.com/gwicke/restbase) table storage on Cassandra

Provides a high-level table storage service abstraction similar to Amazon
DynamoDB or Google DataStore, with a Cassandra backend. See [the design
docs](https://github.com/gwicke/restbase-cassandra/tree/master/doc) for
details and background.

This is the default table storage backend for
[RESTBase](https://github.com/gwicke/restbase), and automatically installed as
an npm module dependency (`restbase-cassandra`). See the install instructions
there.
  
## Status
Prototype, not quite ready for production.

[![Build Status](https://travis-ci.org/gwicke/restbase-cassandra.svg?branch=master)](https://travis-ci.org/gwicke/restbase-cassandra)

Features:
- basic table storage service with REST interface, backed by Cassandra
- multi-tenant design: domain creation, prepared for per-domain ACLs
- table creation with declarative JSON schemas
- secondary index creation and basic maintenance
- data insertion and retrieval by primary key, including range queries

### Next steps
- More refined [secondary
  index](https://github.com/gwicke/restbase-cassandra/blob/master/doc/SecondaryIndexes.md)
  implementation
    - range queries on secondary indexes
- Refine HTTP interface & response formats, especially paging
- Authentication (OAuth2 / JWT / JWS / auth service callbacks) and ACLs
- [Transactions](https://github.com/gwicke/restbase-cassandra/blob/master/doc/Transactions.md):
  light-weight CAS and 2PC
- Get ready for production: robustness, performance, logging
- Basic schema evolution support

## Contributors
* <NAME> <<EMAIL>>
* <NAME> <<EMAIL>>
<commit_msg>Mention phabricator for issue tracking after moving<commit_after># [RESTBase](https://github.com/gwicke/restbase) table storage on Cassandra

Provides a high-level table storage service abstraction similar to Amazon
DynamoDB or Google DataStore, with a Cassandra backend. See [the design
docs](https://github.com/gwicke/restbase-cassandra/tree/master/doc) for
details and background.

This is the default table storage backend for
[RESTBase](https://github.com/gwicke/restbase), and automatically installed as
an npm module dependency (`restbase-cassandra`). See the install instructions
there.
  
## Issue tracking

We use [Phabricator to track
issues](https://phabricator.wikimedia.org/maniphest/task/create/?projects=PHID-PROJ-xdgck5inpvozg2uwmj3f). See the [list of current issues in RESTBase-cassandra](https://phabricator.wikimedia.org/tag/restbase-cassandra/).

## Status

Preparing for production.

[![Build Status](https://travis-ci.org/gwicke/restbase-cassandra.svg?branch=master)](https://travis-ci.org/gwicke/restbase-cassandra)

Features:
- basic table storage service with REST interface, backed by Cassandra
- multi-tenant design: domain creation, prepared for per-domain ACLs
- table creation with declarative JSON schemas
- secondary index creation and basic maintenance
- data insertion and retrieval by primary key, including range queries

### Next steps
- More refined [secondary
  index](https://github.com/gwicke/restbase-cassandra/blob/master/doc/SecondaryIndexes.md)
  implementation
    - range queries on secondary indexes
- Refine HTTP interface & response formats, especially paging
- Authentication (OAuth2 / JWT / JWS / auth service callbacks) and ACLs
- [Transactions](https://github.com/gwicke/restbase-cassandra/blob/master/doc/Transactions.md):
  light-weight CAS and 2PC
- Get ready for production: robustness, performance, logging
- Basic schema evolution support

## Contributors
* <NAME> <<EMAIL>>
* <NAME> <<EMAIL>>

{'fraction_non_alphanumeric': 0.10002763194252556, 'fraction_numerical': 0.0019342359767891683, 'mean_word_length': 5.084033613445378, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 16, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5843117', 'n_tokens_mistral': 1082, 'n_tokens_neox': 1032, 'n_words': 327}