The State of Spring in 2018 - Devoxx UK Impressions

The State of Spring in 2018 - Devoxx UK Impressions

Thanks to my company – Scott Logic – I recently had a pleasure of attending the Devoxx UK 2018 conference. Among many interesting talks and speakers, there were quite a few Spring celebrities present. Juergen Holler (Father of Spring), Josh Long and Mark Heckler were all there. Here are my impressions from the conference. Spring is hugely popular This is hardly news for anyone interested in microservices, but the popularity of Spring can’t be overstated. Every Spring talk was full and the audience was very engaged. Spring is very much the bread and butter of Server Side Java in 2018. ...

May 20, 2018 · 4 min · Bartosz Jedrzejewski
Quick setup for Spring Cloud Data Flow with Docker Compose

Quick setup for Spring Cloud Data Flow with Docker Compose

Spring Cloud Data Flow requires quite a few dependencies in order to run it. In this blog post, I will show you Docker Compose tool and how it can be used to make that setup easy. I have written an introduction to Spring Cloud Data Flow where in order to run the Data Flow server, you need to have 3 other Docker containers running. This is not that bad, but imagine if you had to have more dependencies? Or if you want to have that process easily replicable? Sharing that setup with other developers on the team? You can see that it would be good to have a better way of doing this… ...

May 2, 2018 · 3 min · Bartosz Jedrzejewski
How to learn Spring Cloud - the practical way

How to learn Spring Cloud - the practical way

I have recently spoken at a meetup about Practical Choreography with Spring Cloud Stream. It was a great event where I was asked many questions after the talk. One question got me thinking: *“What book about Spring Cloud do you recommend?”*which as it turns out boils down to “How do you learn Spring Cloud?”. I heard that question posed a few times before in different ways. Here, I will give you my answer on what I think is the best way of learning Spring Cloud. ...

March 6, 2018 · 7 min · Bartosz Jedrzejewski
Spring Cloud Data Flow - Use Cases

Spring Cloud Data Flow - Use Cases

I have recently spent quite a lot of time playing with Spring Cloud Data Flow (SCDF). It is an amazing platform that can be used for many things. Talking about it with some of my colleagues I realized that not everyone knows what are the common use cases. Thinking about it further I realized that I don’t know the full scope of capabilities and business problems that it can solve! In this article I look at different uses for Spring Cloud Data Flow based on what the platform offers and actual stories from companies using it in production. The examples come from Spring One Platform 2017 conference. ...

February 28, 2018 · 4 min · Bartosz Jedrzejewski
Spring Cloud Data Flow - Making Custom Apps and Using Shell

Spring Cloud Data Flow - Making Custom Apps and Using Shell

Last week I wrote about getting Started with Spring Cloud Data Flow. This week I want to show you a few more things that you can do with this amazing platform. In this article I will show you how to make your own Apps that can be part of Data Flow Streams and how to use the Data Flow Shell to control the platform. I assume here that you know how to get you Data Flow up and running and you are familiar with the basics of the platform. If not- don’t worry! Check out my Getting Started with Spring Cloud Data Flow article to learn the basics. ...

February 23, 2018 · 6 min · Bartosz Jedrzejewski
Getting Started with Spring Cloud Data Flow

Getting Started with Spring Cloud Data Flow

In this article, I will show you how you can get started with Spring Cloud Data Flow. Spring Cloud Data Flow is an amazing platform for building data integration and processing pipelines. It has a very user-friendly graphical dashboard where you can define your streams, making your work with data an absolute pleasure. The goal of this article is to have you learn to build some simple data pipelines by the time you are finished reading. Before we get started there are a few system requirements: ...

February 18, 2018 · 7 min · Bartosz Jedrzejewski
Tracing messages in Choreography with Sleuth and Zipkin

Tracing messages in Choreography with Sleuth and Zipkin

One of the challenges in building distributed system is having a good visibility of what is happening inside them. This challenge is only magnified when dealing with choreography- microservices, loosely coupled, communicating via messaging. In this article you will see how Sleuth and Zipkin help to solve that problem. One of the most important requirements for production ready microservices is being able to correlate logs. What does that mean? Having some sort of id, that will link logs from different services together. Of course you don’t want to link everything- you want to focus on a single request/process that is happening in the system. This was often done with MDC (Mapped Diagnostic Context) in slf4j. There is nothing wrong in using these technologies directly, but here I want to show you something better… ...

February 9, 2018 · 8 min · Bartosz Jedrzejewski
Handling bad messages with RabbitMQ and Spring Cloud Stream

Handling bad messages with RabbitMQ and Spring Cloud Stream

When dealing with messaging in a distributed system, it is crucial to have a good method of handling bad messages. In complicated systems, messages that are either wrong, or general failures when consuming messages are unavoidable. See how you can deal with this problem using Dead Letter Queues, RabbitMQ and Spring Boot Cloud. When dealing with messages in distributed systems it is important to know when things go wrong. When your services simply call one another it often is quite trivial- if your call failed, you know that you have a problem! With messaging it is often not so clear- as a service, if you successfully published a message on a queue- your responsibility ends. Whose responsibility is it then to ensure that the message published was correct and if not, that something will be done about it? Here, with the spirit of *“smart pipes”*we assume that it is the brokers responsibility to provide this service… ...

February 5, 2018 · 5 min · Bartosz Jedrzejewski
What you need to know about Spring Boot 2.0 (RC1)

What you need to know about Spring Boot 2.0 (RC1)

With Spring Boot 2.0 release just around the corner (at the time of writing we have RC1) it is important to see what changes it brings. Even if you are not planning to migrate shortly, it is good to see what is new in this biggest Spring Boot release since the 1.0 version. In this blog post I won’t go through every detail, but cover the most important things. No more support for Java 7 and below Java 8 becomes a minimum requirement with Spring Boot. The release notes for the first milestone do not elaborate on that point further. Most developers will probably agree that this is for the better and if somehow you are still below Java 8 and planning to use the latest Spring Boot… Now you have a good business reason to upgrade. ...

January 31, 2018 · 5 min · Bartosz Jedrzejewski
Setting up RabbitMQ with Spring Cloud Stream

Setting up RabbitMQ with Spring Cloud Stream

Message queues are very important and useful tools that you can utilize for your Microservices oriented architecture. Many developers are hesitant using them with the fear that they may add too much complexity and learning curve to the understanding of their system. I will show you how to make use of RabbitMQ and Spring Cloud Stream to get some basic messaging routes set-up with a very little effort! Why use RabbitMQ RabbitMQ is an immensely popular message broker. In fact, the official website claims that this is the most popular open source message broker out there! This makes it a great candidate to be the message broker for your system. Popularity is not good enough reason for using something (but it usually brings plenty of benefits such as community and support), so rest assured- RabbitMQ has much more to offer than its fame. It is very easy to use (you will see) and it can reliably handle 20,000 messages per second with the largest documented deployment – the Instagram, doing more than 1,000,000 messages per second! ...

January 28, 2018 · 8 min · Bartosz Jedrzejewski