Cloud Events and Spring - part 2

Engineering | Oleg Zhurakousky | December 23, 2020 | ...

Introduction

We begin with a quick summary of the previous post.

  • Message is an adequate structure and abstraction with which to consume data that represents a Cloud Event in the context of Spring. We hope it was clear.
  • In Spring, our commitment to isolate functional versus non-functional concerns lets us address non-functional aspects (such as send, receive, retry, connect, convert, and others) at the framework level, letting you (mostly) concentrate on actual business logic and letting you keep your code simple and pluggable to a variety of execution contexts (more on this later).

The…

This Week in Spring - December 22nd, 2020

Engineering | Josh Long | December 22, 2020 | ...

Hi, Spring fans! Welcome to another installment of This Week in Spring!

It's December 22nd, 2020, as I write this and I can not believe we're smack dab in the middle of the week and only have two shopping days until Christmas! I don't know if it's just that time of year and I'm flush with the normal amount of warm-n-fuzzies or if it's just that, after a year like 2020, I'm very keen on savoring this precious reprieve. Either way, couldn't be happier. I've got a cold! I'm sick and sneezing and my nose is running, but at least it's not COVID-19, and at least I've got my family and my job, and - all things considered - I feel very, very, veery

Announcing Spring Cloud Stream Applications 2020.0.0 GA Release

Engineering | Soby Chacko | December 21, 2020 | ...

We are glad to announce the GA release of the newly redesigned Spring Cloud Stream applications - 2020.0.0.

We would like to use this release announcement as an opportunity to wrap up the blog series that we started in the summer. Therefore, consider this as part 15 of the blog series. In this blog, we are going to give a rundown of all the previous episodes in the series, but first, let us go through some release details.

Release Overview

2020.0.0 GA release contains the completely revamped functional foundation for the event-streaming applications. The old structure was based on an app starter model in which the critical logic for the applications is provided as part of a starter module. The starters then form the foundation for the applications. While it worked for the previous four generations of these app starters (Avogadro, Bacon, Celsius, Darwin, and Einstein), it deemed necessary to rewrite these starters as reusable functions so that they can be used for a wide array of use cases beyond what is required in the out of the box applications. Therefore, many of the old app starters were refactored and redesigned as functions, suppliers, and consumers. For the out of the box Spring Cloud Stream binder based applications, we take these functional components and use them as the base to build them. Other custom applications, even non-streaming use cases, can be designed using these functional components as a foundation. The functions can…

This Week in Spring - December 15th, 2020

Engineering | Josh Long | December 16, 2020 | ...

Hi, Spring fans! Welcome to another installment of This Week in Spring! Can you believe it's already December 15th? Me either! Another few weeks and this soul annhilating year will be over with and we'll be staring down 2021 filled with new hopes and possibilities! How are you? (Have you dipped into the eggnog yet?) I'm doing alright, thanks! I've been busy, as usual.

Most of that was fun stuff. But, some of that, I confess, was a mess of my own making. I spent Monday cleaning up a fire I'd set for myself. You see, I got a little sloppy with last week's podcast episode. Last week, I was…

Testing Spring Cloud Stream Applications - Part 2

Engineering | David Turanski | December 15, 2020 | ...

This is Part 2 of Testing Stream Applications. In Part 1 we implemented and tested the core function needed for our sample couchbase-sink application. The tests at the function level covered expected success and error scenarios and relied on Testcontainers to provision a Couchbase cluster. This post assumes you have read Part 1 and continues where it left off.

Couchbase Sink

In Part 1 we verified that the function we wrote for upserting data into Couchbase works as expected. We can now use the function, exposed as a java.util.Consumer, to implement a sink to use in a data pipeline built with…

Testing Spring Cloud Stream Applications - Part 1

Engineering | David Turanski | December 15, 2020 | ...

This post is part of a blog series that explores the newly redesigned Spring Cloud Stream applications based on Java Functions. This episode, presented in two parts, explores strategies for testing functions used to implement stream applications. We will pay special attention to functions that integrate with external resources, which presents additional testing challenges. Such is the case with most of the pre-packaged source and sink applications. To illustrate this, we will walk through a sample couchbase-sink application. Here in Part 1, we will focus on the core function on which the sink…

A Bootiful Podcast: open-web legend Dion Almaer

Engineering | Josh Long | December 14, 2020 | ...

Hi, Spring fans! In this special midweek installment I (Josh Long) correct a mistake I made last week when I inadvertently released the episode featuring open-web legend Dion Almaer with the interview I conducted with the inspirational and oh-so-amazing Spring Batch co-lead Mahmoud Ben Hassine. This is the actual episode with Dion Almaer (@dalmaer) who is known for so many contributions to the Java ecosystem and beyond. I know him as a former editor in chief of TheServerSide.com, but you may know him for his work championing the open web at Palm, Walmart, and Google, and many more.

Case Study: Change Data Capture (CDC) Analysis with CDC Debezium source and Analytics sink in Real-Time

Engineering | Christian Tzolov | December 14, 2020 | ...

Get the Spring newsletter

Thank you for your interest. Someone will get back to you shortly.

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring Runtime offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all