armada

command module
v0.10.0 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2025 License: MIT Imports: 1 Imported by: 0

README

Armada

tag GitHub go.mod Go version Build Status Coverage Status Go report Contributors License

Armada is a distributed ETCD inspired key-value store. Armada is designed to operate eiter as a standalone node, standalone cluster or in Leader - Follower mode suited for distributing data in distant locations. e.g. in different cloud regions. While Armada maintains many of ETCD features there are some notable differences:

  • Armada is designed to store much larger (tens of GB) datasets and also provide iterator-like API to query large datasets.
  • Armada prioritize speed and performance over some more advanced ETCD features like Watch API, or Leases.
  • Armada support multiple separate keyspaces called tables which operate individually.

Production readiness

  • Even though Armada has not yet reached the 1.0 milestone it is ready for a production use.
  • There might be backward incompatible changes introduced until version 1.0, those will always be flagged in the release notes.
  • Builds for tagged versions are provided in form of binaries in GH release, and Docker images.
  • Tagged releases are suggested for production use, mainline builds should be used only for testing purposes.

Why you should consider using Armada?

  • You need to distribute data from a single cluster to multiple follower clusters in edge locations.
  • You need a local, persistent, cache within a data center and reads heavily outnumber writes.
  • You need a pseudo-document store.

Documentation

For guidance on installation, deployment, and administration, see the documentation page.

Contributing

Armada is in active development and contributors are welcome! For guidance on development, see the page Contributing. Feel free to ask questions and engage in GitHub Discussions!

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
client
Code generated by protoc-gen-gogo.
Code generated by protoc-gen-gogo.
config
Package config contains functions and types used for managing dragonboat's configurations.
Package config contains functions and types used for managing dragonboat's configurations.
internal/raft
Package raft is a distributed consensus package that implements the Raft protocol.
Package raft is a distributed consensus package that implements the Raft protocol.
internal/rsm
Package rsm implements State Machines used in Dragonboat.
Package rsm implements State Machines used in Dragonboat.
internal/tests
Package tests contains various helper functions and modules used in tests.
Package tests contains various helper functions and modules used in tests.
internal/transport
Package transport implements the transport component used for exchanging Raft messages between NodeHosts.
Package transport implements the transport component used for exchanging Raft messages between NodeHosts.
logger
Package logger manages loggers used in dragonboat.
Package logger manages loggers used in dragonboat.
raftio
Package raftio contains structs, interfaces and function definitions required to build custom persistent Raft log storage and transport modules.
Package raftio contains structs, interfaces and function definitions required to build custom persistent Raft log storage and transport modules.
statemachine
Package statemachine contains the definitions of the IStateMachine and IOnDiskStateMachine interfaces for supporting the replicated state machine approach.
Package statemachine contains the definitions of the IStateMachine and IOnDiskStateMachine interfaces for supporting the replicated state machine approach.
tan
Tan is a log file based LogDB implementation for dragonboat.
Tan is a log file based LogDB implementation for dragonboat.
kv
vfs
dsl
Package dsl provides facilities for parsing lisp-like domain-specific languages (DSL).
Package dsl provides facilities for parsing lisp-like domain-specific languages (DSL).

Jump to

Keyboard shortcuts

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