Soby Chacko

Soby Chacko

Recent Blog posts by Soby Chacko

Stream Processing with Spring Cloud Stream and Apache Kafka Streams. Part 4 - Error Handling

Engineering | December 05, 2019 | ...

Part 1 - Programming Model Part 2 - Programming Model Continued Part 3 - Data deserialization and serialization

Continuing with the series on looking at the Spring Cloud Stream binder for Kafka Streams, in this blog post, we are looking at the various error-handling strategies that are available in the Kafka Streams binder.

The error handling in Kafka Streams is largely centered around errors that occur during deserialization on the inbound and during production on the outbound.

Handling Deserialization Exceptions

Kafka Streams lets you register deserialization exception handlers. The default behavior is that, when you have a deserialization exception, it logs that error and fails the application (LogAndFailExceptionHandler). It also lets you log and skip the record and continue the application (LogAndContinueExceptionHandler). Normally, you provide the corresponding…

Stream Processing with Spring Cloud Stream and Apache Kafka Streams. Part 3 - Data deserialization and serialization

Engineering | December 04, 2019 | ...

Part 1 - Programming Model Part 2 - Programming Model Continued

Continuing on the previous two blog posts, in this series on writing stream processing applications with Spring Cloud Stream and Kafka Streams, now we will look at the details of how these applications handle deserialization on the inbound and serialization on the outbound.

All three major higher-level types in Kafka Streams - KStream<K,V>, KTable<K,V> and GlobalKTable<K,V> - work with a key and a value.

With Spring Cloud Stream Kafka Streams support, keys are always deserialized and serialized by using the native Serde mechanism. A Serde is a container object where it provides a deserializer and a…

Stream Processing with Spring Cloud Stream and Apache Kafka Streams. Part 2 - Programming Model Continued

Engineering | December 03, 2019 | ...

On the heels of the previous blog in which we introduced the basic functional programming model for writing streaming applications with Spring Cloud Stream and Kafka Streams, in this part, we are going to further explore that programming model.

Let’s look at a few scenarios.

Scenario 1: Single input and output binding

If your application consumes data from a single input binding and produces data into an output binding, you can use Java’s Function interface to do that. Keep in mind that binding in this sense is not necessarily mapped to a single input Kafka topic, because topics could be…

Stream Processing with Spring Cloud Stream and Apache Kafka Streams. Part 1 - Programming Model

Engineering | December 02, 2019 | ...

This is the first in a series of blog posts in which we will look at how stream processing applications are written using Spring Cloud Stream and Kafka Streams.

The Spring Cloud Stream Horsham release (3.0.0) introduces several changes to the way applications can leverage Apache Kafka using the binders for Kafka and Kafka Streams. One of the major enhancements that this release brings to the table is first class support for writing apps by using a fully functional programming paradigm. This blog post gives an introduction to how this functional programming model can be used to develop stream…

Spring Cloud Stream Elmhurst.SR1 Released

Engineering | July 12, 2018 | ...

On behalf of the team, I am pleased to announce the availability of Spring Cloud Stream Elmhurst.SR1 release train. This is the first maintenance release on the Elmhurst line and includes several bug fixes and minor enhancements in core Spring Cloud Stream (2.0.1.RELEASE), Kafka binder (2.0.1.RELEASE), and the Rabbit binder (2.0.1.RELEASE). Please take a look at the release notes for more details. The release can be found in maven central. Detailed descriptions can be found in the reference documentation.

We thank all our community members who contributed valuable additions to this release.

And, as always, we welcome feedback: either in GitHub, on Stack Overflow, on Gitter or on Twitter

Spring Cloud Stream Ditmars.SR4 Released

Engineering | June 13, 2018 | ...

On behalf of the team, I am pleased to announce the availability of Spring Cloud Stream Ditmars.SR4 release train. This is a maintenance release and includes several bug fixes and minor enhancements in core Spring Cloud Stream (1.3.3.RELEASE), Kafka binder (1.3.3.RELEASE), and the Rabbit binder (1.3.4.RELEASE). Please take a look at the release notes for more details. The release can be found in maven central. Detailed descriptions can be found in the reference documentation.

We thank all our community members who contributed valuable additions to this release.

And, as always, we welcome feedback: either in GitHub, on Stack Overflow, on Gitter or on Twitter

Kafka Streams and Spring Cloud Stream

Engineering | April 19, 2018 | ...

On the heels of the recently announced Spring Cloud Stream Elmhurst.RELEASE, we are pleased to present another blog installment dedicated to Spring Cloud Stream’s native integration with the Apache Kafka Streams library. Let’s review the new improvements.

MessageChannel Binders

Spring Cloud Stream framework enables application developers to write event-driven applications that use the strong foundations of Spring Boot and Spring Integration. The underpinning of all these is the binder implementation, which is responsible for communication between the application and the message broker. These binders are MessageChannel

Spring Cloud Stream Chelsea.SR2 Released

Releases | May 17, 2017 | ...

On behalf of the community, I am happy to announce the release of Spring Cloud Stream Chelsea.SR2. This is the second general availability release in the Chelsea release train, which fixes a number of issues over Chelsea.SR1.

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.

What is next:

After the release, we will start working on the next Spring Cloud Stream release train, named Ditmars, as well as expand the Spring Cloud Stream ecosystem. In parallel with developing the Ditmars release train, we will start work on the Elmhurst

Get ahead

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

Learn more

Get support

Tanzu Spring 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