Day 2's kicked off with a bang! My theory is that by that point people had seen a day's worth of sessions, and so the keynote needed to be full of impactful, big-bang announcements and discussions in order to remain memorable. It needed to raise the bar and demonstrate leadership. And it did.
Spring Framework 4.1
Spring Framework 4.1 provides annotated JMS listener methods, comprehensive for the final JSR 107 specification, flexible resolution and transformation of static web resources, additional MVC views (like Groovy Server Pages), websocket-support improvements, and many more new features.
Spring XD co-lead Mark Fisher took the stage to introduce the project as it stands now, a year after its debut last year at SpringOne2GX 2013. Mark invited us to consider how far things have come since the early days of Spring, and to consider how interesting the opportunity continues to be today. Then... he told a joke: "the past, the present and the future walk into a bar. It was tense."
It took a moment, but the room recovered. Reluctantly. Mark offered to continue as a full time developer and not switch to comedy.
Mark showed us how Spring XD a looks at the future. It is built on top of first-class components like Spring Batch, Spring Integration, Spring Data, Redis, RabbitMQ, Zookeeper, and Netflix's Zookeeper-addition Curator. It offers a simple, linux like domain-specific language (DSL) that requires no compliation, making Hadoop more approachable to beginners and experts alike. Extending Spring XD is done in Spring/Java, often in Spring Integration to adapt to customer's unique systems as Spring XD sources and sinks.
It provides powerful data-integration and stream processing capabilities in an operator- and developer-familiar package. Mark introduces a demonstration that analyses the resource consumption of a smart power grid and then, using PMML machine-learning support in Spring XD, predicts future consumption levels. The example uses numerous nodes deployed across multiple cluster nodes, but the assembly and description of the solution in Spring XD itself is really simple! (The crowd seemed to think so, too!)
* Dr. Dave Syer* (co-founder of Spring Batch, co-lead of Spring Security OAuth and Spring Boot) rejoined the stage to follow up on his day 2 update on Spring Boot with some news about, and an introduction to, the new Spring Cloud umbrella project. Spring Cloud has historically contained Platform-as-a-Service connectors that let you consume services - databases, message queues, etc. - from within a PaaS environment. Spring Cloud now has an expanded scope to define and provide software to better enable modern, cloud-y architectures, like the microservices that Netflix builds atop Spring Boot and their own, open-source stack.
Spring Cloud aims to provide solutions for emergent patterns in large scale, often cloud-based applications:
The new Spring Cloud project, in fact, integrates popular Netflix OSS components like Hystrix (which provides implementations of their famous reliability patterns) and Eureka (which provides service discovery and location).
Dr. Syer introduced a simple microservice that demonstrated two services, one that provided a customers repository and another that provided access to merchants (stores). The customer service returned information about the nearby stores. This information came from the stores service. If the stores service were taken offline, the customers service continued to function.
This effort builds upon Spring Boot with an eye towards simplifying the development of microservices. This message seems to have resonated well, and we think that the combination of Spring Boot, Spring Cloud and CloudFoundry will make a killer combination for JVM apps that need to start life as a monolith, but then need to distrubute and decentralize in order to scale. Adrian Cockcroft explains why distribution and decentralization are so important extremely well in an interview on InfoQ.
Reactor Project lead *Jon Brisbin * took the stage to then update us on the state of the Reactor project. Reactor has made great strides since we saw it debut last year. It's since become part of a the Reactive Streams effort jointly led by teams at Netflix, Typesafe, Red Hat, Twitter, Oracle, and Pivotal, among others.
It provided the definition for the
LocationProcessor service in the microservices segment. (The
LocationProcessor is a nice example of the easy-to-use Java 8 DSL, too!) Reactor is a natural fit for microservices:
It's a foundational piece or well integrated with Spring Framework 4.0's websocket support, Spring XD, Spring Integration, the upcoming Grails 3.0's event system, and much more. In fact, we saw Reactor in action earlier in the evening's keynote!
...stay tuned to this blog and This Week in Spring every Tuesday!