Meet WildFly Swarm
As we discussed earlier, the application server provides the possibility to deploy and manage multiple applications within the same instance. Also, the Java EE-compliant application server provides an implementation of all specifications gathered around Java EE umbrella so that each application that conforms to it can use it.
Such a functionality is not necessary for all application architectures. In services developed in our example application, we might not care much about management, hot redeployment, and support for all Java EE libraries. The reason for that is that we will be developing small focused microservices. If a microservice is updated, we can just kill its container and restart its new version. Also, at the time of service creation, we will be able to determine all the libraries that it will use during its operations. Because of that, we will be able to build the executable JAR with only those necessary dependencies, minimizing the runtime size and memory usage. The tool that is most suitable for such a purpose is WildFly Swarm.
WildFly Swarm is a child project of WildFly, whose goal is to make microservice application development easy. Before we take a deeper look at Swarm behavior, let's get a feel for it using our first Hello World JAX-RS Swarm service.