Spring Data - Microservices Data Companion

Spring Data - Microservices Data Companion

Spring Data is one of the flagship projects of the Spring ecosystem. If you need to work with data- be it SQL, non-SQL, using map-reduce or other, Spring Data most likely has you covered. In this article, I will introduce the Spring Data project and explain how it makes writing microservices easier. Working with data is at the core of software development. This data can be in different forms: Relational / SQL Database NoSQL Database Graph Databases (like Neo4j) LDAP records Distributed cache technologies (Redis) Other technologies and variations of the above How great would it be to have a single technology that you could rely on when dealing with any of the above? Well, it is your lucky day- Spring Data can help you with all these and more! ...

May 5, 2018 · 6 min · Bartosz Jedrzejewski
Spring’s WebFlux / Reactor Parallelism and Backpressure

Spring’s WebFlux / Reactor Parallelism and Backpressure

Spring Boot 2.0 (and Spring 5) introduced WebFlux as a way to build reactive Microservices. WebFlux is built using Reactor, which introduces completely new ideas to Spring Boot parallelism. Backpressure, Schedulers, and Parallel Flux are a few concepts that we will look at closer in order to understand how to make the most of our reactive services. I have recently written articles on Getting Started with WebFlux and Concurrency in Spring Boot. One thing that I did not explore enough in these articles were the concurrency implications of building a WebFlux based reactive microservice. ...

April 28, 2018 · 7 min · Bartosz Jedrzejewski
WebFlux and servicing client requests - how does it work?

WebFlux and servicing client requests - how does it work?

I have previously written about Getting Reactive with Spring Boot 2.0 and Reactor, where I have given an introduction to reactive programming in Spring Boot. In this article, I will further explore WebFlux and the ways it impacts servicing client requests- what happens when you return a Flux<>? Simple Flux When you write a Controller that returns a list of numbers from your function, you get a list of numbers when you call it. How does it work when you return a Flux like that?: ...

April 14, 2018 · 5 min · Bartosz Jedrzejewski
Getting Reactive with Spring Boot 2.0 and Reactor

Getting Reactive with Spring Boot 2.0 and Reactor

Reactive programming is gaining a rapid popularity in the JVM community. With Java 9 natively embracing the Reactive Streams and Spring Boot 2.0 including the WebFlux, it is hard to argue with this statement. Spring uses Reactor for its own reactive support and WebFlux relies on that support. In this article, I will show you how to get into reactive programming with Reactor and Spring Boot 2.0. What is Reactor? Project Reactor is quite well described by the tagline on their official page: ...

April 11, 2018 · 5 min · Bartosz Jedrzejewski
Introduction to Concurrency in Spring Boot

Introduction to Concurrency in Spring Boot

When building services with Spring Boot we have to deal with concurrency. There is this misconception that because of using Servlets and getting a new Thread allocated per request there is no need to think about concurrency. In this article, I will give some practical advice on dealing with multi-threading in Spring Boot and how to avoid problems it can create. Spring Boot Concurrency Basics The key areas worth considering when thinking about concurrency in Spring Boot applications are: ...

March 30, 2018 · 5 min · Bartosz Jedrzejewski
Introducing JSON-B with Spring Boot 2.0

Introducing JSON-B with Spring Boot 2.0

JSON Binding (JSON-B) is the new Java EE specification for converting JSON messages to Java Objects and back. JSON is used everywhere and so far we had two main ways of dealing with JSON conversion in Java- using either Jackson or GSON. With the introduction of JSON-B, we have a standard way of handling this conversion. In this article, we will see how Spring Boot 2.0 supports JSON-B, how easy it is to use it and how does it compare with the other options. ...

March 4, 2018 · 6 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
Microservices Toolbox: Spring Boot

Microservices Toolbox: Spring Boot

This is beginning of the series of blog posts where I will introduce and explain different tools and frameworks that are useful in microservices development. It is difficult to start such a series without introducing Spring Boot! Meet Spring Boot- framework which released its 1.0 version in 2014 and by now it is nearly synonymous with microservices in the Java world. Just look at these google trends statistics! Dropwizard (one of the initial competitors) and even the general microservices term are far less popular: ...

January 16, 2018 · 4 min · Bartosz Jedrzejewski