Soby Chacko

Soby Chacko

Recent Blog posts by Soby Chacko

Case Study: Relational Database Source and File Sink

Engineering | September 10, 2020 | ...
This article is part of a blog series that explores the newly redesigned Spring Cloud Stream applications based on Java Functions. In this episode, we are exploring the JDBC supplier and the source based on Spring Cloud Stream. We will see how we can export data from a relational database and dump it into a file using a File Consumer and the corresponding Spring Cloud Stream File sink. We will look at a few different ways in which we can run JDBC Source and send the data to a file. Here are all the previous parts of this blog series. Introducing Function Based Streaming Applications Function…

Case Study: Reading from a file and writing to MongoDB

Engineering | August 25, 2020 | ...
This article is part of a blog series that explores the newly redesigned Spring Cloud Stream applications based on Java Functions. In this episode, we are taking a deeper look into the file supplier and its Spring Cloud Stream file source counterpart. We will also see a MongoDB consumer and its corresponding Spring Cloud Stream sink. Finally, we will demonstrate how the File source and the MongoDB sink can be orchestrated together on Spring Cloud Data Flow as a pipeline. Here are all the previous parts of this blog series. Introducing Function Based Streaming Applications Function Composition…

Creating a function for consuming data and generating Spring Cloud Stream Sink applications

Engineering | August 03, 2020 | ...
This is part 4 of the blog series in which we are introducing java functions for Spring Cloud Stream applications. Other parts in the series. Part 1 - General Introduction Part 2 - Function Composition Part 3 - Supplier function and Source application In the last blog in this series, we saw how we can use a java.util.function.Supplier to generate a Spring Cloud Stream source. In this new edition, we will see how a consuming function can be developed and tested using java.util.function.Consumer and java.util.function.Function. Later on, we will briefly explain the generation of a Spring Cloud…

Creating a Supplier Function and generating Spring Cloud Stream Source

Engineering | July 27, 2020 | ...
This is part 3 of the blog series in which we are introducing java functions for Spring Cloud Stream applications. Other parts in the series. Part 1 - General Introduction Part 2 - Function Composition In the last two blogs in this series, we provided a general introduction to this new initiative of migrating all the existing Spring Cloud Stream App Starters to functions and the various ways in which we can compose them. In this blog, we continue the series, showing how these functions are developed, tested, and used to generate Spring Cloud Stream applications. In particular, here we are…

Stream Processing with Spring Cloud Stream and Apache Kafka Streams. Part 6 - State Stores and Interactive Queries

Engineering | December 09, 2019 | ...
Part 1 - Programming Model Part 2 - Programming Model Continued Part 3 - Data deserialization and serialization Part 4 - Error Handling Part 5 - Application Customizations In this part (the sixth and final one of this series), we are going to look into the ways Spring Cloud Stream Binder for Kafka Streams supports state stores and interactive queries in Kafka Streams. Named State Stores When you have the need to maintain state in the application, Kafka Streams lets you materialize that state information into a named state store. There are several operations in Kafka Streams that require it…

Stream Processing with Spring Cloud Stream and Apache Kafka Streams. Part 5 - Application Customizations

Engineering | December 06, 2019 | ...
Part 1 - Programming Model Part 2 - Programming Model Continued Part 3 - Data deserialization and serialization Part 4 - Error Handling In this blog post, we continue our discussion on the support for Kafka Streams in Spring Cloud Stream. We are going to elaborate on the ways in which you can customize a Kafka Streams application. Customizing the StreamsBuilderFactoryBean Kafka Streams binder uses the StreamsBuilderFactoryBean, provided by the Spring for Apache Kafka project, to build the StreamsBuilder object that is the foundation for a Kafka Streams application. This factory bean is a…

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…

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, KTable and GlobalKTable - 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…

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…

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