System Overview - acm-uiuc/groot GitHub Wiki

Groot Seems complicated but is only so due to how github layout repos.

Groot is currently comprised of a variety of components Clients:

Services:

API Gateway

Basically what happens is services each provide and maintain an API that provides specific functionality. Those APIs are aggregated in the API Gateway giving the appearance of a large unified system. Now any client or another service for that matter can just treat the gateway as the source of all info in groot. This gives us a nice flexible architecture where we can integrate 3rd party services and treat them equally to our first part services.

Then What is Arbor?

Our API Gateway is written with a framework we created called Arbor. It defines most of the middleware within the API Gateway, things like routing, proxy, application authorization, and data sanitation. It means that the groot developers just need to define routes to their API and everything just works.