Spring Team
Marius Bogoevici

Marius Bogoevici

Spring Cloud Stream Lead

New York, NY

Marius Bogoevici is a software engineer at Pivotal, leading Spring Cloud Stream, and working on Spring Cloud Data Flow, Spring XD, and other Spring projects.
Blog Posts by Marius Bogoevici

Spring Cloud Stream Chelsea goes GA!

On behalf of the community, I am happy to announce the general availability of the Spring Cloud Stream Chelsea release train. For this release train, the first general availability release is Chelsea.SR1, which fixes a number of issues over Chelsea.RELEASE (all within the scope of the metrics export feature). Chelsea.SR1 is also included as part of Spring Cloud Dalston.RELEASE.

The new release is available in Maven Central, and a detailed description of its features can be found in the reference documentation. For information about artifacts and most recent changes, please consult the release notes, as follows:

Read more...

Spring Cloud Stream Chelsea.RC1 released

On behalf of the team, I am pleased to announce the release of Spring Cloud Stream Chelsea.RC1. Spring Cloud Stream Chelsea.RC1 is available for use in the Spring Milestone repository, and a detailed description of its features can be found in the reference documentation. For information about artifacts and a complete list of changes, please consult the release notes.

What is new?

Here’s a summary of the major new features and improvements brought by the new release:

Dispatching capabilities added to StreamListener

We’ve added support for dispatching messages to multiple @StreamListener methods registered on an input channel, based on a SpEL-based condition. This allows more flexibility in writing message-driven microservices, especially for DDD/ES/CQRS scenarios, where different types of events can be dispatched to their handling methods directly.

@EnableBinding(Sink.class)
@EnableAutoConfiguration
public static class {

    @StreamListener(target = Sink.INPUT, condition = "headers['type']=='customer'")
    public void handleCustomerEvent(@Payload CustomerEvent customerEvent) {
       // handle the message
    }

    @StreamListener(target = Sink.INPUT, condition = "headers['type']=='order'")
    public void handleOrderEvent(@Payload OrderEvent orderEvent) {
       // handle the message
    }
}

Metrics

Spring Cloud Stream has added an additional module that enables the export of Spring Boot metrics on a dedicated channel. You can now collect metrics from your applications by simply adding the module on the classpath and providing a target destination as described in the reference documentation. By default, the module exports Spring Integration metrics (including bound channel metrics), but other metrics can be added as well. This enables first class support for traffic monitoring in Spring Cloud Stream applications.

Schema improvements: search and caching

New features for schema support include schema searching and client-level caching, the latter adding significant performance improvements to the serialization support.

RabbitMQ custom infrastructure support

The RabbitMQ binder now supports customizing the types of destinations and their attributes, including support for Direct Exchanges and TTL settings for messages.

Provisioning SPI

Starting with this release, Spring Cloud Stream introduces a new provisioning SPI, abstracting the creation and configuration of destinations (topics, exchanges, queue) on the target brokers. This allows better separation of concerns between the infrastructure management and messaging aspects of a binder.

Read more...

Spring Cloud Stream Brooklyn.SR2 and Chelsea.M1 released

On behalf of the community, I am happy to announce the release of Spring Cloud Stream Brooklyn.SR2 and Chelsea.M1 release trains. As part of the next installment to Brooklyn release train, Brooklyn.SR2 adds a number of new features and fixes. The next release train Chelsea.M1 builds on top of Spring Boot 1.5 and a contains a core improvement listed below.

What is new?

A few highlights of the improved areas:

  • Schema Registry Support: fixed issues related to using the Schema Registry server, in particular support for MySQL and Postgresql;
  • Aggregate Applications: improved support for property propagation via namespaces;
  • Reactive support: Aligns declarative (e.g. reactive) handler support with imperative mode, which makes it easier to seamlessly adopt a functional programming model. In particular, this adds support for the following idiom:
Read more...

Spring Cloud Stream Brooklyn.RELEASE is available

On behalf of the team, I am happy to announce the general availability of the Spring Cloud Stream Brooklyn release train. Spring Cloud Stream Brooklyn.RELEASE is available for use in the Spring Release repository and in Maven Central. A detailed description of the features and new capabilities as discussed below can be found in the reference documentation. The release notes are available here and include important information on the migration path.

At a high level, Brooklyn.RELEASE introduces the following new features:

Read more...

Spring Cloud Stream Brooklyn.RC1 is available

On behalf of the team, I am pleased to announce the release of the first release candidate of the Spring Cloud Stream Brooklyn release train. Spring Cloud Stream Brooklyn.RC1 is available for use in the Spring Milestone repository, a detailed description of its features can be found in the reference documentation. Release notes are available here and include important information on the migration path.

As this release follows closely the previous milestone release it contains a small number of fixes, and one major addition, which is support for Kafka 0.10 via drop-in dependency replacement.

Read more...

Spring Cloud Stream Brooklyn.M1 is available

On behalf of the team, I am pleased to announce the release of the first milestone of the Spring Cloud Stream Brooklyn release train. Spring Cloud Stream Brooklyn.M1 is available for use in the Spring Milestone repository, a detailed description of its features can be found in the reference documentation. Release notes are available here and include important information on the migration path.

From a Monolith to a Release Train

Spring Cloud Stream Brooklyn.M1 succeeds Spring Cloud Stream 1.0. The change in the naming scheme reflects the project’s structural changes, in particular switching from a monolithic structure, where the core components and the binder implementations are contained together, to a more decentralized one. In the new structure, the core and binder implementations are separate projects, with their own release cadence. A release train BOM aggregates the release components together and manages their versions.

Read more...

Spring Cloud Stream 1.0.2.RELEASE is available

Shortly after the 1.0.1.RELEASE announcement last week we’ve identified a critical and very specific issue concerning multi-binder configurations in cloud environments. As a result, we have decided to follow up with a 1.0.2.RELEASE to handle that and ensure that the fix is available in the upcoming Brixton.SR1 release. The artifacts can be found in Spring Repository as well as Maven Central.


I will be talking about Spring Cloud Stream at Spring One Platform, which will be taking place in Las Vegas between August 1-4 this year. There are many other great talks so check the agenda and get your ticket if you haven’t done so already.

Read more...

Spring Cloud Stream 1.0.1.RELEASE is available

On behalf of the team, I am pleased to announce that Spring Cloud Stream 1.0.1.RELEASE is now available. The artifacts can be found in Spring Repository as well as Maven Central.

As a maintenance release it includes a number of fixes and improvements, such as:

  • additional configuration options for bindings;
  • the ability to create binder configurations that do not interfere with the user-created ones; this is a feature useful for libraries that include Spring Cloud Stream under the hood and wish to do so
    transparently.
Read more...

Spring Cloud Stream 1.0.0.RELEASE is available

On behalf of the team, I am pleased to announce the general availability of Spring Cloud Stream 1.0.0.RELEASE. The artifacts can be found in Spring Repository as well as Maven Central.

The goal of Spring Cloud Stream is to be a lightweight framework for developing event-driven microservices, building on the ease of development and deployment of Spring Boot, and the component model and integration capabilities of Spring Integration. As part of the Spring Cloud family of projects, it has a specific focus on cloud-native architectures.

Read more...

Spring Cloud Stream 1.0.0.RC2 is now available

On behalf of the team, I am pleased to announce the release of Spring Cloud Stream 1.0.0.RC2, available here. As part of the release candidate cycle, it comes with a number of bug fixes and a small number adjustments. The complete list of changes is available here.

Some highlights:
- Spring Cloud Stream applications now use the ObjectMapper provided by Spring Boot, if available;
- Header embedding is now a general purpose producer/consumer property. It can be enabled or disabled by middlewares that require embedding for header propagation. This allows easier interoperability outside Spring Cloud Stream; (until now it was a Kafka-specific property);
- Further documentation and sample improvements.

Read more...