riak-1.1.2.5: A Haskell client for the Riak decentralized data store

Safe HaskellNone
LanguageHaskell98

Network.Riak.CRDT

Description

CRDT operations

  • Haskell-side

  • Riak-side

    • get to get a current value
    • sendModify to ask Riak to apply modifications

TL;DR example

>>> let c = Counter 41
>>> let op = CounterInc 1
>>> modify op c
Counter 42
>>> get conn "counters" "bucket" "key"
Just (DTCounter (Counter 41))
>>> sendModify conn "counters" "bucket" "key" [op] >> get conn "counters" "bucket" "key"
Just (DTCounter (Counter 42))
Synopsis

Documentation

class MapCRDT a => CRDT a op | a -> op, op -> a where #

CRDT types

Minimal complete definition

modify, sendModify

Methods

modify :: op -> a -> a #

Modify a value by applying an operation

sendModify :: Connection -> BucketType -> Bucket -> Key -> [op] -> IO () #

Request riak a modification

Instances
CRDT Counter CounterOp # 
Instance details

Defined in Network.Riak.CRDT

CRDT Set SetOp # 
Instance details

Defined in Network.Riak.CRDT

Methods

modify :: SetOp -> Set -> Set #

sendModify :: Connection -> BucketType -> Bucket -> Key -> [SetOp] -> IO () #

CRDT Map MapOp # 
Instance details

Defined in Network.Riak.CRDT

Methods

modify :: MapOp -> Map -> Map #

sendModify :: Connection -> BucketType -> Bucket -> Key -> [MapOp] -> IO () #