Reuni System
  • Reuni System
  • Reuni Server
Powered by GitBook
On this page

Reuni System

NextReuni Server

Last updated 6 years ago

Reuni(Reliable Unifier) is a system created as centralized dynamic configuration management. Reuni intended to be used in microservice environment to handle configuration management for hundreds of running service. The system currently under open source development at github organization maintained by developer and interns at .

This system concise of 3 main component:

Reuni System High Level Architecture

Before starting development, you should understand the terminologies we are using when developing the Reuni System.

  • Service(s), in our system service mean an application with one codebase and one application, because it's intended to be used in microservices environment, normally one services server one functionality, e.g. authentication-service, authorization-service, go-ride-allocation-service, etc.

  • Namespace(s), namespace are group belong to each services, one namespace can be used to represent a state of running services, e.g. development-box, staging, production, production-2, etc.

  • Configuration(s), configuration in our system are a set of key-value pair that are going to be used in running services.

, the core of this system, coded in Golang. Because of centralized nature, all request from the other 2 component will be handled by this server, making it a little bit monolithic by design. We may upgrade the server design in the future time.

Client, we create 2 type of user client which is using Ruby on Rails and coded in Golang. The client manage all user input and user interaction, and do a REST API call.

, coded in Golang, currently designed as a process supervisor. The agent purpose is to sync the configurations saved in the REST API, and set it to the deploys environment variable.

The REST API Server
WebBased-Client
CLI-Client
Agent
Go-Squads
Go-Jek