I watch a lot of sports. For sports like baseball and (American) football, I keep up with all the players. Sports like hockey? Forget it; it's too much work. In the technology space, you've likely declared bankruptcy on certain topics you can't afford to pay attention to any longer. Maybe you skipped the flood of database engines hitting the market. Or you've ignored front-end JavaScript frameworks because they seem to have a half-life of two weeks. But sometimes, you need to reinvest and catch up on what you missed.
There are a LOT of projects that make up the Spring Framework, and keeping up can be daunting. But we're also in a period of dramatic change that's super relevant to Java developers. Reactive programming, event-driven microservices, and cloud-native data all stand to change how we build software. Where can you learn about all those patterns? Spring Days. We've organized community events in three U.S. cities: Chicago in May, New York in June, and Atlanta in July. Invest in your skills development and register today!
I somehow pinned down Spring Developer Advocate Josh Long long enough to answer a few questions about the event. Our chat is below.
Richard: Spring Days is coming! Is this going to be a conference with a lot of clipart-infused corporate slides? Who presents at this event?
Josh: I hope not! I'm hoping that this will be a show where people who care about software demonstrate the art of creating software … with software. The presenters are passionate and–with the notable exception of yours truly, of course!–masters of their crafts. These are practitioners and contributors to the technologies on which they lecture.
Richard: Is Spring Days only for Spring pros? Will brand new Spring devs feel lost or is this a great crash course of Spring goodness?
Josh: This is a Java show through the lens of the (vast) Spring ecosystem, so there will be an introduction to Spring Boot, a primer on the latest-and-greatest in Java 9, and so much more. The talks are designed to light the way; to show what's _possible_. We'll cover heady topics, ground them in theory, and _lots_ of practical implementation. You'll probably not remember every line of code typed or every API discussed, but you'll know what's possible and where to dive into the details.
Richard: What's exciting to you in the Spring space right now? Where are enhancements to Spring Boot and Spring Cloud getting you pumped?
Josh: The entire Spring ecosystem has embraced and is integrating support for reactive programming. You'll see initial support debut in Spring Framework 5, to be released summer of 2017. That will permeate new Spring Data releases and Spring Boot 2, due end of 2017, and the Spring Cloud releases that follow. You'll see it in Spring Security, you'll see it in a new Spring Cloud technology, built from the ground up on Spring Framework 5 called Spring Cloud Gateway.
Richard: It seems like we're all talking about data more often now. Data microservices, data pipelines, machine learning, and all that stuff. Are you seeing that as well? If so, why do you think that is?
Josh: We seem to be running, naturally, into the use cases that fall out of trying to increase organizational velocity. We decompose applications into smaller batches – microservices – to allow for smaller teams, which in turn require less synchronization. When you decompose data and services into microservices you formalize the boundaries of parts of the domain. This is a very useful quality – it means that data processing (which is IO intensive and often the slowest link in a processing chain) is limited to the dimensions of a single service, which can in turn use whatever technologies – MongoDB, Redis, Cassandra, RabbitMQ, etc. – that it wants to optimize that processing, as all access to that service is through a homogeneous interface (REST, messaging), not through the database. A microservice should be able to scale its dependencies, including its database. So decomposed, it's easier to efficiently scale processing of any single part of the system. But what happens when you need to act on data that's been siloed off in these microservices? To make decisions based on the composition of data from different services? This is where the art of integration pipelines come into play. A data microservice is a microservice that is optimized to support efficient integration with other services, and building one takes care, beyond standing up a REST API for basic CRUD.
Richard: You spend a LOT of your time in face-to-face chats with developers. What do you say to folks who learn Spring via online channels, and may not think an in-person event like Spring Days is useful to them?
Josh: Go to the in-person events to meet great people and have your questions answered. The didactic online-only forums (which I participate in all the time) are efficient but lack the super-satisfying hallway conversations.