The Spring Blog

Engineering
Releases
News and Events

Webinar Replay: Stream Processing in the Cloud with Data Microservices

Speakers: Marius Bogoevici, Pivotal

The future of scalable data processing is event-driven microservices! They provide a powerful paradigm that solves issues typically associated with distributed applications such as availability, data consistency, or communication complexity, and allows the creation of sophisticated and extensible data processing pipelines.

Building on the ease of development and deployment provided by Spring Boot and the cloud native capabilities of Spring Cloud, the Spring Cloud Stream project provides a simple and powerful framework for creating event-driven microservices. They make it easy to develop data-processing Spring Boot applications that build upon the capabilities of Spring Integration. At a higher level of abstraction, Spring Cloud Data Flow is an integrated orchestration layer that provides a highly productive experience for deploying and managing sophisticated data pipelines consisting of standalone microservices. Streams are defined using a DSL abstraction and can be managed via shell and a web UI. Furthermore, a pluggable runtime SPI allows Spring Cloud Data Flow to coordinate these applications across a variety of distributed runtime platforms such as Apache YARN, Cloud Foundry, Kubernetes, or Apache Mesos.

Read more...

SpringOne2GX 2015 replay: Developing Real-Time Data Pipelines with Apache Kafka

Recorded at SpringOne2GX 2015.
Speaker: Joe Stein
Big Data Track
Slides: http://www.slideshare.net/SpringCentral/developing-realtime-data-pipelines-with-apache-kafka-53201942
Developing Real-Time Data Pipelines with Apache Kafka http://kafka.apache.org/ is an introduction for developers about why and how to use Apache Kafka. Apache Kafka is a publish-subscribe messaging system rethought of as a distributed commit log. Kafka is designed to allow a single cluster to serve as the central data backbone. A single Kafka broker can handle hundreds of megabytes of reads and writes per second from thousands of clients. It can be elastically and transparently expanded without downtime. Data streams are partitioned and spread over a cluster of machines to allow data streams larger than the capability of any single machine and to allow clusters of coordinated consumers. Messages are persisted on disk and replicated within the cluster to prevent data loss. Each broker can handle terabytes of messages. For the Spring user, Spring Integration Kafka and Spring XD provide integration with Apache Kafka.

Read more...

SpringOne2GX 2015 replay: A Spring Developer's Guide to Social Integration

Recorded at SpringOne2GX 2015.
Speaker: Craig Walls
Data / Integration Track
Slides: http://www.slideshare.net/SpringCentral/spring-developers-guide-to-social-integration
There’s an internet full of services ready to be plugged into your Spring applications. These services offer a wealth of information about the users of your application, including information about their interests, places they travel to and visit, their friends, family, and colleagues, and even what temperature they like to keep in their home. All you need to do is tap into it.

Read more...

SpringOne2GX 2015 replay: What it means to be Just In Time

Recorded at SpringOne2GX 2015.
Speaker: Ashley Puls, NewRelic
Core Spring Track
Slides: http://www.slideshare.net/SpringCentral/what-it-means-to-be-just-in-time
We write Java code on a daily basis which then gets compiled down to bytecode and run on the JVM. This talk explains what happens to bytecode inside the JVM. It begins with an overview of the Just In Time (JIT) compiler. This overview discusses JIT optimizations such as method inlining and loop unrolling. The talk then inspects JIT logs to explain the optimizations performed on a spring boot application. By the end of the talk, you should be able to examine the impact of the JIT compiler on your own code.

Read more...

SpringOne2GX 2015 replay: Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js

Recorded at SpringOne2GX 2015.
Speaker: Matt Raible
Web / JavaScript Track
Slides: http://www.slideshare.net/SpringCentral/comparing-hot-javascript-frameworks
JavaScript MVC Frameworks are all the rage these days. They’ve taken the web development world by storm. This session explores the various features of the three hottest JavaScript MVC frameworks: AngularJS, Ember.js and React.js. It also compares client-side templating vs. server-side templating and how well each framework supports Isomorphic JavaScript (code that can run both client-side and server-side). Finally, we’ll rank each framework on 10 different criteria using Yevgeniy Brikman’s scorecard.

Read more...

SpringOne2GX 2015 replay: Building microservices with event sourcing and CQRS

Recorded at SpringOne2GX 2015.
Speaker: Michael Ploed
Cloud Native Track
Slides: http://www.slideshare.net/SpringCentral/building-microservices-with-event-sourcing-and-cqrs-53211567
CQRS and Event Sourcing are two architectural patterns that have become very popular through the rise of cloud architectures and No-SQL databases. Both work very well together and take a different take at the handling and storage of data compared to the “classic enterprise approach”. CQRS splits your application in a read- and a write-part whereas through Event Sourcing the state of your data is represented by sequences of events. This talk introduces both patterns and shows how applications leveraging CQRS and Event Sourcing can be implemented with the Spring Ecosystem.The talk will have slides and live demos.

Read more...

SpringOne2GX 2015 replay: Isomorphic templating with Spring Boot, Nashorn and React

Recorded at SpringOne2GX 2015.
Speaker: Sebastian Deleuze
Web / JavaScript Track
Slides: http://www.slideshare.net/SpringCentral/isomorphic-templating-with-spring-boot-nashorn-and-react
The first part of this talk introduces the upcoming Spring Framework 4.2 Script Templating support,
showing how you can use Nashorn, Jython or JRuby to render templates with Javascript, Python or Ruyby based template engines. We will see how easy you can extend out of the box capabilities on the scripting side.
Based on benchmarks, features available and code samples, we will see if this can be a production ready alternative to templating technologies usually used with Spring MVC like JSP, Velocity, FreeMarker or Thymeleaf.
The second part of the talk will explain how to build an isomorphic application that performs the same templates rendering on client AND server based on Spring Boot, Nashorn and React, the the latest game changer Javascript library released by Facebook. The rendering of Javascript templates is performed initially on server-side thanks to a Spring MVC + Nashorn integration, then enriched on client side with a Server-Sent Events push mechanism.
This kind of isomorphic templating + the disruptive innovation brought by React with his virtual DOM mechanism make it possible to build a new kind of applications : responsive, with a great UX while being accessible.

Read more...

SpringOne2GX 2015 replay: Introducing CallTracing(tm), based on RabbitMQ, Spring and Zipkin

Recorded at SpringOne2GX 2015.
Speaker: Monish Unni
Data / Integration Track
Slides: http://www.slideshare.net/SpringCentral/introducing-calltracing-tm-based-on-rabbitmq-spring-and-zipkin
Do you live in a world where StackTraces aren’t quite enough? There is no easy way for you to predict how a certain set of services might be called or what their usage patterns are? Does everything work in DIT/SIT/UAT/PELT until you hit production and strange things start to happen due to distribution of services? Solution: Use RabbitMQ (AMQP protocol) and spring proxies/interceptors to enable an out-of-band instrumentation to trace requests and gain deep knowledge about how certain requests perform in a distributed system. In 2014, as part of infrastructure wide changes, I introduced calltracing(tm) as a way to correlate requests from a single user across E*Trade’s heterogeneous systems. This "“trace”" is then consumed by various big-data analytic tools to produce aggregated reports. Zipkin(tm) is a collector, digester and a visualization front-end for the aggregated data. in other words, it’s a distributed tracing system that can show timing data for services that are on various nodes. Zipkin manages both collection and lookup of data through a collector and a query service. In this session, i will discuss specifically how E*Trade’s disparate services are stitched together using RabbitMQ(AMQP protocol) and Spring Proxies to form the enablement tier to provide data to Zipkin.

Read more...

Supercharging Operations and Analytics: Using Spring XD to Support Analytics and CEP

Recorded at SpringOne2GX 2015.
Speaker: Joseph Paulchell, CapitalOne
Big Data Track
Slides: http://www.slideshare.net/SpringCentral/supercharging-operations-analysis-using-spring-xd-to-support-analytics-and-cep
Operations, analytics, and business teams are requesting ever increasing amounts of data delivered to Big Data analysis platforms and tools. This demand is driven by the desire to better understand user experience, quality of service, real time performance of systems, and the undiscovered patterns and opportunities that exist to improve service, sell products, and delight users. Capital One Technology solved for the ever increasing demand for data from consumer facing applications using Spring Extreme Data (XD) and custom Java libraries to stream data in real time from applications to Hadoop HDFS, Mongo, Kafka, Splunk, and others. In this talk we will discuss our journey from batch-oriented processes using databases to a real time data streaming solution and the significant benefits achieved. We’ll cover the implications of adopting a streaming solution, why we selected Spring XD, and the target architecture we are implementing to land data in HDFS. We’ll cover how we automated environment provisioning, the design for our client libraries (Java, Spring), our XD environment, and how we’re tapping into all that data. We’ll describe challenges we overcame on this journey including connecting to our HDFS cluster, working with multiple Mongo stores, using Kerberos, and ensuring protection and encryption of sensitive data end to end. Lastly we’ll talk about a number of use cases where we are evaluating Spring XD and see potential benefits including “rolling window” system analytics, digital message delivery, and event driven architectures.

Read more...

Webinar: Spring Boot and Ratpack Web Framework

Speaker: Danny Hyun
With the advent of Ratpack and Spring Boot, people think you need to choose between one or the other. That couldn’t be further from the truth. The only place where they overlap is in serving web requests. Spring Framework is a very rich ecosystem including but not limited to DI, web mvc, data, security, etc.
Ratpack focuses on rapid web app prototyping and iteration balancing low resource utilization, high performance and developer friendliness. We’ll explore the ways in which Ratpack and Spring Boot work in harmony.

Read more...