koding / kite

Micro-service framework in Go
https://godoc.org/github.com/koding/kite
MIT License
3.26k stars 300 forks source link

Kite fail tolerance question #129

Closed gngeorgiev closed 9 years ago

gngeorgiev commented 9 years ago

I am planning on using kite in production. The initial, simplified architecture is this:

Google compute engine instances, with automatic scaling. Each engine instance has:

Rest service to accept public request and public Websocket service. The two sevices talk to each other in the same compute engine instance.

When an HTTP request comes in, through kite it will send a message to the websocket service to send back some info to the attached clients. My question is if in any case the Websocket service fails for a few seconds what will kite do if the HTTP server tries to communicate with it? Does it have any integrated message queue or should I add one myself which will handle these cases.

Moreover, does kite have an option to have 2 instances of the same microservice in which case it will loadbalance between the two internally?

mischief commented 9 years ago

You are free to implement any load balancing mechanism based on the kite querying interface. You get the kite addresses back from the query and can connect to one or many or retry, etc.

gngeorgiev commented 9 years ago

Figured that much, I was just hoping kite would do some of these stuff, would save some work :)