The Waterfront Conference Center provided good facilities for organizing a conference of this size. Even though it felt a bit packed at times, everything worked smoothly thanks to the helpful and plentiful staff members. And, as we all know but are too embarrassed to confess, one of the main reasons to attend these kinds of conferences is to visit the booths to gather as many free t-shirts, stickers, bags and other advertisement-ware you possibly can, right?
Among the exhibitors were some big players, such as Oracle, IBM, Microsoft, Red Hat, but also some smaller companies. The offering was largely based on cloud-based platforms and solutions, but there was also some more niche stuff related to mobile payment, machine vision, and even robotics, for example. The food was good and available almost at all times. We also had our fair share of coffee during the venue, which made us very happy.
The conference lasted two whole days with an evening party in between. Some workshop events were also held on the day before our arrival. There were usually six sessions running simultaneously so you could choose the most interesting topics pretty neatly. All of the presentations that I saw were held by enthusiastic and entertaining speakers and that made me wonder how I could personally get to the same level in terms of presentation skills. However, some of the sessions relied too much on humor and funny slides.
Here are the technology trends that I personally cherry-picked from the conference:
1) Reactive programming (RP) gaining more ground
Of course, RP is nothing new but it is gradually getting increasingly more hype and real use. Behind this trend is an ever-growing amount of data in the world and the need to process it in an efficient way. A single website may now handle as much traffic as the entire Internet did a few years ago. As computational capabilities of microchips cannot keep up with the requirements presented by the new real world, the only way to move forward is to distribute and parallelize computation as much as possible. It is really hard to come up with elegant distributed software in a traditional procedural way and, therefore, new paradigms are in need. I attended the following talks covering RP.
- Reactive Java EE by Ola Petersson of Squeed
Mr. Petersson presented a way of incorporating reactive programming within the Java EE ecosystem. This was achieved with async HTTP utilizing WebSockets, message-driven beans, CDI events, and JAX-RS asynchronous responses. I really enjoyed the practicality of this session.
- Asynchronous stream processing with Akka Streams by Johan Andrén of Lightbend.
This was a hands-on kind of developer to developer talk that covered the implementation of various use cases where Akka streams come in handy. I really like Akka and have used its actor model so it was good to also get to know some of the streaming stuff. Especially the Scala streaming API looked beautiful and elegant. You can watch the presentation here.
2) Microservices as the architecture of choice for distributed apps
Closely related to reactive programming is the microservice architecture that I see just as a specialization of SOA, so not necessarily nothing new here either. From what I have understood, the main differences are the requirement that microservices are independently deployable, whereas SOA has no say in the matter and SOA is a bit stricter on the service contract side. Anyways, a lot of fuzz happened around the reactive microservices that were depicted as something like the only solution to keeping up with ever-growing needs for simultaneous data processing. Two sessions that I attended covered the topic.
- Reactive Microservices with Vert.x by Burr Sutter of Red Hat
Mr. Sutter is a rather verbose fellow and the amount of stuff covered in this topic was quite overwhelming. The audience was first presented with some patterns of designing microservice architecture and then hastily introduced to using Vert.X, Kubernetes, and fabric8 to implement such designs in a productive manner. Pretty impressive stuff, but it would have needed more time given the amount of content. You can watch the presentation here.
- From microliths to microsystems by Jonas Bonér of Lightbend.
Mr. Bonér ended the conference with a nearly ecstatic keynote on the architecture of complex distributed systems. The key concept of the session was that it is not enough to build systems out of microservices. He suggested that each microservice should also be designed as a distributed system in itself - as a "microsystem". Only then can a system be totally elastic and resilient in the true spirit of the reactive manifesto. You can watch the presentation here.
Even though we at Valamis currently do not necessarily face the challenges that reactive programming and microsystems are tailored for too much, there was definitely a lot to take home from these sessions for further processing.
3) Java 9 + Java EE 8 coming soon
Of course, the upcoming new Java releases got some attention as well.
- Java 9: make way for modules by Mark Reinhold of Oracle
This was also the main opening keynote of the conference. Mr. Reinhold, who is the chief architect of Java Platform Group at Oracle, introduced the concept of modules defined in project Jigsaw. The main goals of this feature are to get rid of "JAR hell" and to be able to scale down the JDK size for smaller devices and containers. A very welcome change indeed! You can watch the presentation here.
- Java EE 8 - What's coming by David Delabassée of Oracle.
A new version of Java Enterprise Edition is expected in the fall. New features to expect include (surprise, surprise) enhancements for reactive HTTP client API and server-sent events (JAX-RS 2.1), support for HTTP/2 (SERVLET 4.0), new JSON binding API (JSON-B) and lots of improvements in CDI usage (CDI 2.0) that facilitate easier of use outside a JEE container. You can watch the presentation here.
Other covered topics included the Internet of Things, DevOps, type theory, useful utility libraries, and there was even some cyborg talking about microchip body implants.
The overall atmosphere of Jfokus2017 was warm with a special sense of community between people coming from a broad range of countries and companies. I don't know if this is an IT thing but I suspect that this kind of sense of belonging together might not be too usual when people of the same profession congregate. Maybe it has the roots in the techie/nerd culture. In the closing keynote, we took the time to honor a Swedish professor and public, speaker Hans Rosling, who had died of cancer the day before. There was a fundraiser for a cancer fund which immediately reached its goal. I had never heard about Rosling or his work before, but now I know a great deal.
We made it home quite pleasantly despite the fact that the Stockholm cab company we used for getting back to the airport charged us double the price we had paid for the opposite direction. This was a great experience and makes us yearn for more DevCons :)