Go to file
2018-03-17 11:28:23 -07:00
actions Implement v2 Protocol. Adding expectedVersion for optimistic concurrency and metadata. 2016-08-26 22:10:15 -07:00
data Implement v2 Protocol. Adding expectedVersion for optimistic concurrency and metadata. 2016-08-26 22:10:15 -07:00
scripts Added type indexes. Updated vagrant scripts. 2016-08-28 13:29:53 -07:00
serializer Implement v2 Protocol. Adding expectedVersion for optimistic concurrency and metadata. 2016-08-26 22:10:15 -07:00
server Add ReadAll_v3 with CreationTime 2017-02-11 22:22:06 -08:00
storage Refactor index rebuilding 2018-03-11 10:27:12 -07:00
.gitignore Added type indexes. Updated vagrant scripts. 2016-08-28 13:29:53 -07:00
build.sh Adding mingw64 (msys2) to build script 2018-03-17 11:28:23 -07:00
goes_test.go Implement v2 Protocol. Adding expectedVersion for optimistic concurrency and metadata. 2016-08-26 22:10:15 -07:00
goes.go Rebuild indexes 2018-03-08 14:59:07 -08:00
goes.iml First commit 2016-02-12 17:54:50 -08:00
LICENSE Implement v2 Protocol. Adding expectedVersion for optimistic concurrency and metadata. 2016-08-26 22:10:15 -07:00
README.md Updated README 2016-08-28 14:05:34 -07:00
Vagrantfile Adding install to Vagrantfile 2016-06-25 00:32:58 -07:00

Goes

GoLang implementation of a simple EventStore

Released under the MIT license. See LICENSE file.

Getting started

Pre-requisites

  • Install GoLang version 1.6+
  • Install libsodium* version 1.0.10+ (Linux only^)
  • Install zeromq* version 4.0+ (Linux only^)
  • Install msys2 (Windows only)

* On Linux libsodium and zeromq are installed from source (./configure && make && sudo make install && sudo ldconfig)
^ On Window libzmq and libsodium are installed using pacman in MSYS2 shell (pacman -S mingw-w64-x86_64-zeromq)

You can look at scripts/bootstrap.sh to get an idea on how to install all the pre-requisites.

Build

Fetching GO packages

In your GOPATH folder, execute the following commands:

go get github.com/pebbe/zmq4
go get github.com/satori/go.uuid

Compiling the binary

In the project root folder, execute the following command:

go build -o bin/goes

Running the server

In the project root folder, execute the following command:

./bin/goes --db=./events --addr=tcp://127.0.0.1:12345

Both flags are optional and their default values are the same as the example.