Architecture

    JChem Microservices is implemented based on different Spring projects (Spring Boot, Spring Framework, Spring Cloud /AWS, Netflix, Config/, Spring Security ) . For the gateway, further Netflix components (Zuul, Ribbon, Hystrix) are also applied. Many technical features of JChem Microservices are determined by the underlying Spring projects. The services communicate via http as provided by Netflix Eureka Service.

    Why does JChem Microservices have so many modules?

    The idea behind JChem Microservices is to provide a solution with High-Availability, Robust and modern Web Service where highly used parts can be scaled up and rarely used parts can be switched down. For this we provide the opportunity to set up different parts of the software on many machines. All of the services can be configured by a central configuration service, they all register into a discovery service and have a common entry point, which should be the only visible service in your network. In this architecture configuration- and discovery-service should be a single instance, the other parts can be multiplicated if necessary.

    High Availability

    The Spring elements make JChem Microservices highly available. Running more instances, more gateways through the load balancer are the key tools for constructing a highly available system. See the above architecture diagram as an example.

    Here we provide more information about DB Web Services HA mode

    Autoscaling

    JChem Microservices - with the exception of the DB Web Services - are stateless services creating the opportunity for running more instances of them through a load balancer. Autoscaling capability of a system depends on how the given system was constructed. Here you find a load balanced example application on GitHub.