hyperioxx / frontman

Frontman is an open-source API gateway written in Go that allows you to manage your microservices and expose them as a single API endpoint. It acts as a reverse proxy and handles requests from clients, routing them to the appropriate backend service.

Home Page:https://frontman-labs.github.io/frontman/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Horizontal scalability issue

amityahav opened this issue · comments

since there are in-memory stores for the backends in addition to the remote stores (yaml, redis, mongo), when thinking about scalability when more than 1 instance of frontman exists and an admin modifies the service registry he will modify the remote registry and the in-memory stores(registry and prefix tree) of the addressed frontman solely, so we need to figure out a way to gossip among peers when a modification is made.
this gossip should update in-memory store and prefix tree of the peers

one of the instances needs to act as the control-plane/director/Leader (Whatever term we use xD). the raft consensus algorithm come's to mind (it's the same algorithm that docker swarm uses). What do you guys think ? @amityahav @nonsoike

@hyperioxx raft will do for preserving state cross load balancers cluster, but is it our responsiblity to load balance between loadbalancers or its some low level implementation by the network engineers?

@amityahav looking into it, it's not our responsibility we just need to keep the state in each instance

@hyperioxx we could create an kubernetes operator but then we would have to change config manually via yank instead of using api which creates a state for an instance