The Skinny on Fat, Thin, Hollow, and Uber
I was recently playing around with various techniques for packaging Java microservices and running on OpenShift using various runtimes and frameworks to illustrate their differences (WildFly Swarm vs. WildFly, Spring Boot vs. the world, etc.). Around the same time as I was doing this, an internal email list thread ignited discussing some of the differences and using terms like Uber JARs, Thin WARs, Skinny WARs, and a few others. Some folks were highlighting the pros and cons of each, especially the benefits of the thin WAR approach when combined with docker image layers.
And I thought to myself: Isn’t this what everyone is already doing? Do developers really have to think about this stuff? But before I get into that, I want to define the various terms I’ve heard and at least get it straight in my own head.