clusterfunk

package module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 10, 2019 License: Apache-2.0 Imports: 0 Imported by: 0

README

Clusterfunk

What it is

This is a cluster library for Go. At its core it uses Raft and Serf to manage and automate clusters of nodes.

What it isn't

A silver bullet.

Requirements

clusterfunk requires Go version 1.12 or later.

Building

This library requires a fairly recent version of Go, at least 1.12. If you are modifying the protobuffer files you'll need the protoc compiler. The generated files are included in the source tree so you won't need it unless you use make generate (or go generate ./...).

Run make to build the demo service. The build uses a host of checkers (golint, go vet, staticcheck, revive and golangci-lint) so you might get some errors if you miss one or more of those.

Get them the usual way:

go get -u golang.org/x/lint/golint
go get honnef.co/go/tools/cmd/staticcheck
go get -u github.com/mgechev/revive
# This only works for macOS, check out https://github.com/golangci/golangci-lint#install for other platforms
# go get works as well but the author doesn't recommend it.
brew install golangci/tap/golangci-lint

Documentation

Overview

Package clusterfunk is the root package for the clusterfunk library.

Directories

Path Synopsis
cmd
Package cmd contains command line utilities and demos of the library
Package cmd contains command line utilities and demos of the library
demo/client
Package main contains the demo client code.
Package main contains the demo client code.
demo/server
Package main contains a very simple demo project
Package main contains a very simple demo project
pkg
clientfunk
Package clientfunk contains client-side types and utilities
Package clientfunk contains client-side types and utilities
funk
Package funk contains the types needed to create a cluster using Raft and serf.
Package funk contains the types needed to create a cluster using Raft and serf.
funk/clustermgmt
Package clustermgmt contains the protobuf-generate code for the cluster management interface
Package clustermgmt contains the protobuf-generate code for the cluster management interface
funk/clusterproto
Package clusterproto contains the generate gRPC code
Package clusterproto contains the generate gRPC code
funk/metrics
Package metrics handles metrics for the cluster.
Package metrics handles metrics for the cluster.
funk/sharding/shardpb
Package shardpb contains the protobuf-generated code for the internal cluster communication
Package shardpb contains the protobuf-generated code for the internal cluster communication
serverfunk
Package serverfunk contains types that comes in handy when writing servers.
Package serverfunk contains types that comes in handy when writing servers.
toolbox
Package toolbox contains various helper and utility functions that the library uses.
Package toolbox contains various helper and utility functions that the library uses.
toolbox/fsmtool
Package fsmtool contains tools for creating FSMs, particularly transitioning between states.
Package fsmtool contains tools for creating FSMs, particularly transitioning between states.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL