outworkers / cassandra-phantom

Cassandra + Phantom Example

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Phantom DSL Example

Build Status

This project will give you the idea on how to design your cassandra tables in scala using the phantom-dsl. My inspiration is to bring here a more real world example based on this library.

Features

Across the code, you will find the following features:

Connect to a secure Cassandra Cluster

In the class Connector you will find two connectors:

  • Connect to a Cassandra Cluster somewhere
  • Connect using an embedded Cassandra (for tests only running through sbt test)

Set Consistency Level

Phantom-DSL offers to you an easy way to set the consistency level for any query you want to execute. Throught the GenericSongsModel you will find this piece of code .consistencyLevel_=(ConsistencyLevel.ONE) where you can change it to whatever you want, accordingly to your needs.

Handle queries for multiple tables

This is maybe the main goal of this project, showing to you how to handle multiple versions of the same table. Here we have:

  • Songs
  • SongsByArtist

You will find how to insert and delete on both tables

Testing using an embedded Cassandra in memory

Using sbt test you can run the tests without having any previously Cassandra instalation up and running.

Simple streaming example using Akka Streams

Under the test folders, you will find a very simple Streaming example, creating a Source from a publisher provided by the phantom's reactive-streams module.

Resources

Thanks

Special thanks to Flavian who helped me to find out the best way to use phantom to model our Cassandra tables.

About

Cassandra + Phantom Example


Languages

Language:Scala 100.0%