cassem

module
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Sep 17, 2021 License: MIT

README

cassem

Go Report Card

CASSEM is a distributed config management center, it is totally independent, so it's easy to deploy and maintain in your environment. At the same time, it's deployed by Go which gives it platform-cross ability and fast-compile.

Features

  • HTTP Restful API to manage all configs cassemadm.
    • Stateless so that it can be easily scaled.
    • Gray released.
    • Multi-version management.
    • Operation log, each operation to config elements will be recorded.
    • Permission control.
    • Client instance management.
    • CTL / UI tool support these are constructing on cassemadm RESTful API.
      • Web UI is developing.
      • CTL tool to debug and manage config from terminal.
  • Distributed storage component cassemdb, based on raft consensus algorithm.
    • Master can read and write.
    • Slave node can only respond to read request.
    • Use gRPC protocol to communicate.
    • Watch TTL features support.
    • Lazy Deletion the expired KV. There is a deleting working thread to delete KV from queue, the queue's data is from two part, one is operation check, another is timer check.
  • Stateless agent component cassemagent to improve client's usability.
    • Cache config elements, and using LRU-K replacing algorithm.
    • Language independent support HTTP and gRPC protocol.
    • Client SDK, easy to use.
    • Change Push ability, gray released also built on this.

Documentation

- cassemdb

The KV storage component in cassem, provide gRPC API.

- cassemadm

The manager in cassem, provide RESTful API to communicate. It is serving for CTL and Dashboard UI.

- cassemagent

Agent is serving for user's client, agent SDK, actually. Of course, agent is stateless server.

Benchmark

benchmark tested core RESTful API and try to optimize them, each benchmark test displays the final QPS result.

References

Directories

Path Synopsis
api module
cmd
internal
cassemdb/infras/raft-leader-grpc
Package raftleader is included in your Raft nodes to expose whether this node is the leader.
Package raftleader is included in your Raft nodes to expose whether this node is the leader.
pkg
httpx
Package httpx gateway.go contains two main API module: HTTP and gRPC.
Package httpx gateway.go contains two main API module: HTTP and gRPC.
set

Jump to

Keyboard shortcuts

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