close

Oleg Zhurakousky

Oleg Zhurakousky

Software Engineer

Saint-Saturnin-les-Apt, France

Open source practitioner with over 17 years of experience in software engineering across multiple disciplines including software architecture and design, consulting, business analysis and application development. Speaker who presented seminars at dozens of conferences worldwide (i.e. SpringOne, JavaZone, Hadoop Summit,, JavaOne, Scala Days, Oredev etc.)
Blog Posts by Oleg Zhurakousky

Cloud Events and Spring - part 2

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).
Read more...

Cloud Events and Spring - part 1

Prologue

Uniformity of data across systems and platforms is a singular and noble purpose of Cloud Event specification. With its growing adoption, the hope is that the developers and architects would no longer have to worry about how to deal with various events coming from different systems and platforms…
But the point of this post is not to re-litigate or re-justify Cloud Events. A simple Google search renders quite a few points for you to read to help the “Why Cloud Events?” question.
The goal of this and subsequent posts on the subject is to share some ideas and the work we’ve been doing here at Spring to anticipate and handle greater adoption of Cloud Events.

Read more...

Announcing Spring Cloud Stream Horsham.SR4 (3.0.4.RELEASE) and Spring Cloud Hoxton.SR4

We are pleased to announce the release of the Spring Cloud Stream Horsham.SR4 (3.0.4.RELEASE) release train which is available as part of Spring Cloud Hoxton.SR4 and builds on Spring Boot 2.2.6 and Spring Cloud Function 3.0.6.RELEASE which was also just released.

Spring Cloud Stream Horsham.SR4 modules are available for use in the Maven Central repository.

This release contains several fixes and enhancements primarily driven by user’s feedback, so thank you.
For more details please follow these links:
- Spring Cloud Stream Core
- Spring Cloud Stream Rabbit Binder
- Spring Cloud Function

Read more...

Announcing Spring Cloud Stream Horsham.SR2 (3.0.2.RELEASE) and Spring Cloud Hoxton.SR2

We are pleased to announce the release of the Spring Cloud Stream Horsham.SR2 (3.0.2.RELEASE) release train which is available as part of Spring Cloud Hoxton.SR2 (just released) and builds on Spring Boot 2.2.4 and Spring Cloud Function 3.0.2.RELEASE which was also just released.

Spring Cloud Stream Horsham.SR2 modules are available for use in the Maven Central repository.

This release contains several fixes and enhancements primarily driven by user’s feedback, so thank you.
For more details please follow these links:
- Spring Cloud Stream Core
- Spring Cloud Stream Core Rabbit Binder
- Spring Cloud Stream Core Kafka Binder
- Spring Cloud Function

Read more...

Announcing the release of Spring Cloud Stream Horsham (3.0.0.RELEASE)

We are pleased to announce the release of the Spring Cloud Stream Horsham (3.0.0.RELEASE) release train which is available as part of Spring Cloud Hoxton.RELEASE (imminent) and builds on Spring Boot 2.2.x and Spring Cloud Function 3.0.0.RELEASE which was also just released.

Spring Cloud Stream Horsham.RELEASE modules are available for use in the Maven Central repository.

Quick highlights:

As mentioned in these posts (demystified and simplified, functional and reactive, stream and spring Integration and event routing) preceding this announcement, the core theme of this release is functions!.

Read more...

Announcing the release of Spring Cloud Function 3.0.0.RELEASE

We are pleased to announce the release of the Spring Cloud Function 3.0.0.RELEASE, which is available as part of Spring Cloud Hoxton.RELEASE (imminent) and builds on Spring Boot 2.2.x.

Spring Cloud Function 3.0.0.RELEASE modules are available for use in the Maven Central repository.

Quick highlights:

Transparent type conversion

This release introduces a refactored implementation of FunctionCatalog which amongst features such as function composition, support for reactive and non-reactive functions and more introduces transparent type conversion via MessageConverters provided by Spring Messaging.

Read more...

Spring Cloud Stream - Composed Functions or EIP

In preparation for the upcoming releases of Spring Cloud Stream (SCSt) 3.0.0 - Horsham and Spring Cloud Function (SCF) 3.0.0, we’ve been publishing a series of posts discussing and showcasing new features and enhancements.
We provided motivation and justification for moving away from the annotation-based programming model to the functional model, and then we provided more details on the functional approach, as well as reactive functions.
In another post, which is relevant to what we’re going to be discussing here, Artem demonstrated the benefits of combining functional approaches with the Spring Integration project. We also talked about event routing in our last post.

Read more...

Spring Cloud Stream - Event Routing

Welcome to another post in a series of posts showcasing the new features of Spring Cloud Stream (SCSt).
In previous posts (available here, here and here), we tried to provide justification for our shift to a functional programming model in Spring Cloud Stream (SCSt). It is less code and less configuration, and your code remains completely decoupled from the internals of SCSt.

Today, we’ll talk about routing with functions.
Routing, in the context of SCSt, is the ability to either a) route events to a particular event subscriber or b) route an event produced by an event subscriber to a particular destination. To help more with the context, let’s quickly look at how things work in the annotation-based programming model. In this post, we’ll refer to it as route ‘TO’ and route ‘FROM’.

Read more...

Announcing Spring Cloud Stream Horsham.RC1 (3.0.0.RC1)

We are pleased to announce the first Release Candidate of the Spring Cloud Stream Horsham.RC1 (3.0.0.RC1).

Spring Cloud Stream Horsham.RC1 (3.0.0.RC1) modules are available for use in the Spring Milestone repository.

Quick highlights:

  • Spring Boot 2.2.x
  • Spring Cloud Function 3.0.0.RC1

Notable features and enhancements for this milestone:

Emphasis on functional programming model

As mentioned in the previous release blogs, with this release we are shifting to a simpler functional programming model.

In the nutshell a simple spring-boot application with at least one function bean is also a spring-cloud-stream application (as shown below).

Read more...

Spring Cloud Stream - functional and reactive

In the previous post, I tried to provide justification for our shift to a functional programming model in Spring Cloud Stream (SCSt). It’s less code, less configuration. Most importantly, though, your code is completely decoupled and independent from the internals of SCSt.

In this post, I’ll dig a little deeper and summarize the core features of our functional support, specifically around its reactive features.

IMPORTANT: Anything you can do with @StreamListener/@EnableBinding you can also do without it. In other words, the functional support is now feature-compatible with the annotation-based support.

Read more...