Got Flux ? This was the main question (and the wi-fi password!) being asked at the Spring I/o ’17 conference that took place in the beautiful city of Barcelona. Flux and Mono were two of the main concepts talked across sessions in the conference. Reactive Programming and its support through all the Spring Framework ecosystem was the main subject, featuring almost all the sessions.
The event was full of interesting talks about Reactor 3, Spring Boot, Spring Cloud, Spring Cloud Stream, Angular 4, Kotlin, Microservices, Functional Programming and more. There were also some workshops, so you could get hands-on experience with these features and concepts. Besides technology presentations, there were sessions about its application into several topics like Test Driven Development, how to build progressive Web Apps, how to solve the problem of having a monolithic domain in the frontend using Self Contained Systems or how to use DeepLearning4J and Spring Boot in the Machine Learning context.
Although there’s no central repository for all presentations, most speakers shared their contents in Twitter under #springio17 hashtag. Me and my colleague João Monteiro were the two brave ones representing our great company, Polarising. One of my favourite talks was DDD Strategic Design with Spring Boot, where Michael Plöd discussed the advantages of Domain Driven design, giving examples on how to separate the domains in an application into Bounded Contexts, using what I call a need-to-know basis to define these domains, that run as separate and independent Spring Boot applications. This talk was complemented by a workshop on Leveraging Domain Events in Spring Boot, where there was no live coding but instead Michael simply explained and demonstrated an application, which allowed a more in-depth approach to this subject by eliminating the concerns about setting up the project and getting everything to work.
There were other workshops I enjoyed a lot, like the one on Bootiful Development with Spring Boot and Angular, by Matt Raible. We used Spring Initializer to build a simple application that showed a list of beers and would fetch a gif for the beer from https://giphy.com/. The last workshop was also very interesting and interactive, focusing on CQRS with Spring Cloud Stream, conducted by Jakub Pilimon, always asking questions and input to keep the audience interested. The presentation followed the problems faced by Twitter in a publisher/subscriber scenario and implemented a solution, similar to the one used by Twitter, to solve those problems.
João also has something to say about these two days and I think it’s only fair to share this post with him, my partner in crime. So, from here on, it’s his keyboard writing.
My main purpose was to get in touch with the latest trends related to Spring technologies. I mainly attended the sessions presenting Reactive Programming and its support in Spring 5 (Spring’s next release is expected to be available in these next few months). My favourite talks were the opening keynote stating that the only constant in technology business is change, or in other words, there are a lot of frameworks and great products out there, so the software development process is all about consistent choices. Spring aims to helps to adapt your code to those choices in an agnostic way.
Reactor3 was another great session; the reactive foundation for Java8 (and Spring5), or in my own words, streams lead to extreme (in a reactive way). The presentation was about how Spring folks integrated the reactive concepts (flux and mono) into their framework using java8 through an open source project called Reactor3. How about Testing for Unicorns? No, those don’t exist:) This talk was about the benefits of using tools like AssertJ and Arquillian to write better unit and integration tests in a more expressive way, in a less time consuming boilerplate code writing to set the test infrastructure.
Finally, the beginners guide to Spring Cloud, that although it was an introductory session with a simple overview of the Spring Cloud ecosystem, Ryan Baxter gave a lot of hints and advocated the easiness of building a more or less micro-service based application using Flex and Mono. He showed how to integrate tools like Eureka, Zipkin and Histrix and their use in this kind of applications.
Reactive Spring was a mix with stand up comedy and hardcore programming! Josh Long and Mark Heckler spent an hour joking around and live coding, and by the end the feeling was how the hell did they build that in so little time?! They make it sound so easy to use reactive paradigm! A lot of good talks were happening at the same time and I wished I had the gift of ubiquity to be able to attend all sessions, it was an awesome event, we will be back!
VANDA RIBEIRO & JOÃO MONTEIRO
Polarising Consultants and Spring enthusiasts