Overview

JLupin Microservice is an independent application (from development and deployment perspective) running its own process, configured and managed by Main Server.

Figure 1. Microservices as separated processes.

There are two types of JLupin Microservice:

  • application - a computer program written in JAVA (or any other language that based on JVM and uses JVM as a runtime environment), run by Main Server as separated JVM process. This approach ensures separation, resilience and responsiveness of the applications.

  • technical - a separate process managed by Main Server, it extends the functionality of the JLupin Platform. Currently, we distinguish one technical microservice - JLupin Edge Balancer, which supports the process of providing microservice services and allows the implementation of a fully uninterrupted restart at the edge of the system (in 'access' layer). Would you like to know more ? Go to this chapter, please (coming soon).

Application microservices

There are two types of application microservice:

  • servlet - this type of microservice is a embedded SpringBoot implementation and provides full support for Java servlets. This type is suitable for access / presentation layers, where pure HTTP(S) access is needed.

  • native - native JLupin Platform microservice - a set of POJOs configured by Spring IOC container. This type implements all platform's features and is suitable for middleware layer / business logic functions.

Feature servlet native
Zero downtime deployment v v
Reliable microservice communication v v
Asynchronous entry point x v
Self-healing actions v v
Asynchronous subsystem execution v v

In this documentation, in each case where we use the "microservice" word we mean application microservice. In case of any topic related to technical microservice we will use the phrase "technical microservice" explicitly.

Location

All microservices are located in 'application' directory:

$JLUPIN_HOME/application

Each microservice has its own directory, where its files are located. The name of the directory is automatically the name of microservice. For example all files of 'sampleMicro' microservice will be located in:

$JLUPIN_HOME/application/sampleMicro

directory. This name is used by Main Server to proceed service discovery routing and also by management tools to identify microservice. For example, the command to restart 'sampleMicro' will be:

microservice restart sampleMicro

Deployment unit structure

Microservice consists of two group of files:

  • configuration YAML file, whose name changes depending on the type of microservice:
Type Configuration file name
servlet servlet_configuration.yml
native configuration.yml
  • application files, which types differ depending on microservice type:
Type Application files
servlet A SpringBoot WarLauncher .war file, and other external resources that application embed by Spring Boot uses
native .jar files with any other external resources that application uses