The server is currently based off of a modified version of this architecture. The main difference is that preexisting gateways are being used for database communications instead of a JPA/Spring Data repository solution. Dependency injection is still used in order to access the gateways.