2018 Predictions

My 2018 predictions:

  1. 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.
  2. 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.
  3. 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.
  4. OpenLiberty could become the killer Java EE 8 / Java 9 application server. Small, lightweight and with interesting production features.
  5. SQL revival: Modern relational databases like e.g PostgreSQL will regain traction.
  6. 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.
  7. 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).
  8. 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.
  9. The year of "UseThePlatform": more and more "enterprise" projects will move away from JavaScript frameworks to plain WebStandards. Frequent migrations are expensive and come with no additional value.
  10. 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.
  11. Raise of WebComponents (v1): Custom Elements, Shadow DOM together with ES 6 are a viable alternative to JavaScript frameworks. The longer you wait, the leaner your application becomes.
  12. Frameworks known from Java ecosystem like Vaadin Elements and Prime Elements become a popular WebComponent-compatible UI widget provider.
  13. HTTP/2 and Webstandards will dramatically simplify the JavaScript build pipeline. No build is the best build.
  14. JavaScript (ES 7+) will become more and more similar to Java. Now Java developers can become easily webapp developers with 20+ years experience :-)

My 2017 predictions were...

Comments:

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 #

Hi Brandon,

see e.g. http://www.adam-bien.com/roller/abien/entry/60k_ebills_per_hour_tiny

http://www.adam-bien.com/roller/abien/entry/productive_java_ee_7_on

You should attend the airhacks.com. Most of the attendees reported tiny WARs in real world :-)

thanks && cheers,

adam

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 #

Hi adam,
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

Thanks,
St.

Posted by Stanislav Jogui on January 30, 2018 at 01:18 PM CET #

Hello

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.

Br.

Posted by Philipp B. on January 31, 2018 at 09:48 AM CET #

Hi Philipp,

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

thanks!,

adam

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 #

Post a Comment:
  • HTML Syntax: NOT allowed
...the last 150 posts
...the last 10 comments
License