My 2018 predictions:
- Thin WARs become mainstream. Packaging the infrastructure together with the business logic although only <1% changes is not reasonable in containerized environments and slow. Fast turnaround cycles are crucial for productivity. Developers infected with "Thin WAR" mindset thrive for Micro WARs with fast deployments. It is common in green field Java EE 7 projects to have WARs smaller than 1 MB.
- Microservices become just another solution for a problem and not a general architecture. It is perfectly fine to deploy a single, small, WAR containing everything: a macroservice / microlith.
- Serverless overuse: serverless architectures claim to safe costs and to simplify operations. This is not true for all use cases -- I expect first reports of failing serverless projects due additional implementation complexity and plumbing. However: combining "traditional" Thin WARs with serverless endpoints brings the best of both worlds together. Servers for the main load and functions for (infrequent) events.
- OpenLiberty could become the killer Java EE 8 / Java 9 application server. Small, lightweight and with interesting production features.
- SQL revival: Modern relational databases like e.g PostgreSQL will regain traction.
- JMS revival: there is a lack of popular common messaging API in microservice context. JMS 2.0 is just an API and could be implemented by many messaging services. JMS API with a "funky" implementation could (should) gain traction.
- I got the first requests about Java 9 modules within microservices. There should be a buzz around additional module complexity introduced with "premature modularization" in second half of 2018 (or earlier).
- Fat Clients are back: Service Workers, Cache API, Progressive Web (Offline) Apps, IndexedDB, "offline first" encourage developers to put more and more logic on the client. This is exactly how Fat Client is defined.
- Server Side Rendering (SSR): server side rendering is a viable architecture for SPAs / PWAs. Java Server Pages have a bad name, but are a fast and capable serverside templating technology with great tool support.
- Frameworks known from Java ecosystem like Vaadin Elements and Prime Elements become a popular WebComponent-compatible UI widget provider.
The only problem I repeatedly have with the claim of Thin WARs and being a few hundred KB or under 1MB, is that in production/reality I've never seen that.
Sure, to spin up a JAX-RS API that returns hello world as a string, or heck spice it up and create a pojo for JSON marshalling, that is one thing.
But a real application is going to need to talk to a database, kafka, elasticsearch, caching, akka, or need some other libraries... and by the time you're done you're right up there at 10-30mb.
Posted by Brandon Lamb on January 29, 2018 at 04:49 PM CET #
see e.g. http://www.adam-bien.com/roller/abien/entry/60k_ebills_per_hour_tiny
You should attend the airhacks.com. Most of the attendees reported tiny WARs in real world :-)
thanks && cheers,
Posted by 192.168.0.79 on January 29, 2018 at 05:52 PM CET #
"SQL revival: Modern relational databases like e.g PostgreSQL will regain traction."
I think it's also worth to mention about new SQL trend, for example cockroach db: https://github.com/cockroachdb/cockroach
Posted by Marek on January 30, 2018 at 09:23 AM CET #
could you please elaborate on the following?
> OpenLiberty could become the killer Java EE 8 / Java 9 application server. Small, lightweight and with interesting production features.
Sorry, found no time up to now for listening to https://s3.eu-central-1.amazonaws.com/airhacks.fm/airhacksfm_4.mp3
Posted by Stanislav Jogui on January 30, 2018 at 01:18 PM CET #
when JEE fits your programming requirements and you do not need any third party libs than the war will be real small, because the application server brings all the libs the war needs. I think not the war makes the JEE deployment slow, it is the startup of an application server.
At the end of the day, for an JEE application the same amount of classes have to be loaded, don't matter inside of the war or outside.
Posted by Philipp B. on January 31, 2018 at 09:48 AM CET #
the application servers are starting in about 1s - 3s. This didn't changed that much.
A big WAR makes a difference: https://www.youtube.com/watch?v=5N4EUDhrkec
Posted by Adam Bien on February 01, 2018 at 11:04 AM CET #
I think that transactional SQL databases like PostgreSQL are just so rich in useful features that it should be desirable to use them, when they make sense. NoSQL does have its space. For one for databases that cannot reasonably be built with something like PostgreSQL due to size and speed requirements. It usually needs to be very big for that. Or due to special features that some NoSQL databases provide and that are useful in certain projects.
Posted by Karl Brodowsky on February 01, 2018 at 11:00 PM CET #