cassem
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 oncassemadm
RESTful API.
- 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 isoperation check
, another istimer check
.
- Stateless agent component
cassemagent
to improve client's usability.- Cache config elements, and using
LRU-K
replacing algorithm. - Language independent support
HTTP
andgRPC
protocol. - Client SDK, easy to use.
-
Change Push
ability, gray released also built on this.
- Cache config elements, and using
Documentation
Explanation:
- cassemdb provide KV storage capacity.
- cassemadm is the manager to whole cassem application.
- cassemagent‘s major duty is helping clients to access config easier, makes cassemdb work transparently to clients. Importantly, cassemagent is stateless so that it could easily scale up and load balance.
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.