Basics of WildFly Swarm

WildFly Swarm is a project that has taken the WildFly Java Application Server 10.1.0.Final and deconstructed it into fine-grained parts. WildFly Swarm then allows the selective reconstitution of those parts back together with your application to allow building self-contained executable "uberjars".

The point of these machinations is to support microservices while providing just-enough-appserver to support whatever subset of traditional JavaEE APIs your application requires.

Additionally, WildFly Swarm brings other state-of-the-art components to your application, integrating them seamlessly. This includes authentication/authorization from Keycloak, client-side load-balancing via NetflixOSS Ribbon/Hystrix, and log aggregation using Logstash.

Monolithic Application Server

When using a traditional monolithic application server, you first install the entire server, and then deploy your application on top of it. In the case of microservices, you might end up with an app-server that supports significantly more functionality than your application requires. This can lead to an excess use of resources.

WildFly Swarm Uberjar

In the WildFly Swarm "uberjar" scenario, just enough application server is wrapped around your application. Any un-needed parts are simply excluded. This results in a much smaller usage of resources. Additionally, a single artifact is produced which can be shuffled along a continuous deployment pipeline.