Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/navicore/akka-http-phantom.g8

A giter8 generator for a working Akka HTTP API server persisting to Cassandra with the Phantom DSL
https://github.com/navicore/akka-http-phantom.g8

akka akka-http cassandra giter8 giter8-template phantom-dsl

Last synced: about 1 month ago
JSON representation

A giter8 generator for a working Akka HTTP API server persisting to Cassandra with the Phantom DSL

Awesome Lists containing this project

README

        

[![Codacy Badge](https://api.codacy.com/project/badge/Grade/1bec982da37d4df0a375d183f2b97dd6)](https://www.codacy.com/app/navicore/akka-http-phantom.g8?utm_source=github.com&utm_medium=referral&utm_content=navicore/akka-http-phantom.g8&utm_campaign=Badge_Grade)
[![Build Status](https://travis-ci.org/navicore/akka-http-phantom.g8.svg?branch=master)](https://travis-ci.org/navicore/akka-http-phantom.g8)

A [g8] Template for an Akka HTTP API Server persisting objects with [Phantom] for [Cassandra]
---

## PREREQ

* sbt >= 13.16

## USAGE

G8 will prompt you for details like your project name and package name

In a terminal shell, enter:

```console
sbt new navicore/akka-http-phantom.g8
```

`cd` into the resulting directory and `sbt run`

See generated the README.md for how to build, configure, and connect to Cassandra

#### Notes About The Generated Example

* The initial example entity is stored denormalized
* primary key for one model is a v4 UUID
* primary key for a second model is `name` and clustering key is `datetime`
* CRUD works - see generated examples dir
* basic time series lookups (last 'n' occurrences of 'name')
* could be modified to be an append-only event-sourcing backend

![Graphiz](docs/denorm.png)

[Phantom]: https://github.com/outworkers/phantom
[Cassandra]: http://cassandra.apache.org/
[g8]: http://www.foundweekends.org/giter8/
[g8 setup]: http://www.foundweekends.org/giter8/setup.html

## DEVELOPING

While changing the template, test using something like:

```console
sbt new file:///Users/navicore/git/navicore/akka-http-phantom.g8
```