When to use a Java framework like Spring?

When to use a Java framework like Spring?

I have recently been writing a lot about microframeworks and my enthusiasm for them. Even though I think they are amazing, they are not always the answer. In this article, I will explore use cases, where a fully featured framework may be just what you need. What is the difference between framework and microframework? Before going deeper into the argument, let’s make sure we are clear what we mean when talking about microframeworks. ...

July 29, 2018 · 4 min · Bartosz Jedrzejewski
The Key to a Successful Software Architecture

The Key to a Successful Software Architecture

Recently I have read and reviewed “Clean Architecture“ by Robert C. Martin. Very entertaining book. It made me think about the main quality that good software architectures exhibit. What is this quality? It is the existence of clear boundaries and well-defined modules. If you don’t agree with me- keep reading and I am sure we will find some common understanding. Divide and Conquer The famous maxim of Divide and Conquer (Latin: dīvide et imperā) is defined as: ...

July 21, 2018 · 5 min · Bartosz Jedrzejewski
“Awesome Microservices” - discover technologies and theory

“Awesome Microservices” - discover technologies and theory

Wouldn’t it be nice if someone would gather all the best resources, projects, technologies and everything else related to microservices? Yes, it would! The good news is- someone (many people) already did. Let me introduce you to awesome-microservices! What are “awesome lists”? Someone had an idea of listing the best GitHub projects and resources relating to particular technologies and… putting it on GitHub. This way, such a list can be curated and expanded by other community members in an orderly fashion. ...

July 15, 2018 · 3 min · Bartosz Jedrzejewski
The Quest for Simplicity in Java Microservices

The Quest for Simplicity in Java Microservices

There is great value in simplicity. When things are simple, they are easier to understand, easier to extend and easier to modify. They are better. Simplicity is the ultimate compliment you can give to an architecture or a framework. In this article, I look at how four different frameworks- Spring Boot, Javalin, Vert.x and Micronaut; approach this quest for simplicity. Simple does not mean easy One of my inspirations for this article was a great presentation by Rich Hickey titles Simple Made Easy. ...

July 8, 2018 · 7 min · Bartosz Jedrzejewski
Microservices Definition

Microservices Definition

Are you really building microservices? What are microservices? There seems to be a constant disagreement on what constitutes microservices systems and what simply makes a “distributed monolith”. In this article, I will go back to basics and look at what’s at the core of what microservices really are. Before giving my own opinion on the microservices definition and helping to answer you the question “are we really building microservices?” let’s quickly review what the greats have to say on that topic. ...

July 2, 2018 · 4 min · Bartosz Jedrzejewski
CIA World Factbook API with Functional Spring

CIA World Factbook API with Functional Spring

I have recently been very interested in microframeworks. One thing notably missing from that article is Spring in the context of a microframework. You may be surprised, but it is possible to write very lightweight APIs with Functional Spring. In this article, I will show you how, by turning CIA World Factbook into a REST API. So what is Functional Spring? Functional Web Framework was introduced in Spring 5 and lets you build a very lightweight REST API without much of the Spring Magic. Sounds perfect! ...

June 22, 2018 · 5 min · Bartosz Jedrzejewski
The rise of Java Microframeworks

The rise of Java Microframeworks

Together with the growing popularity of microservices and light-weight REST API, we are witnessing another trend in Java: the rise of Java Microframeworks. Javalin, Micronaut, Spark and many more make building REST APIs a breeze. In this article, I look at this exciting space and share my opinions on their use. What is a microframework? Microframework is a minimalistic web application framework. What usually differs it from more traditional, large applications framework is: ...

June 2, 2018 · 6 min · Bartosz Jedrzejewski
WebFlux in practice - asynchronous service with WebClient

WebFlux in practice - asynchronous service with WebClient

Building reactive microservices with WebFlux is fun and easy. In this article, I will show you how to build a reactive “synonyms” service. Making asynchronous API calls with WebClient is likely the most common scenario for a real-life reactive microservice. Synonyms service – the idea I want to build a service that will return a synonym for a given word. Based on that I would like this service to translate a sentence into another one made completely out of synonyms. For example, I will have: Java is a good languagebecome Coffee is a right speech. It is somewhat entertaining and a nice example! ...

May 31, 2018 · 4 min · Bartosz Jedrzejewski
Adopting Microservices - Pragmatic Advice

Adopting Microservices - Pragmatic Advice

Your company wants to adopt microservices. You are either really happy or terrified. A change like this can be great for those wanting to learn and improve their systems, but it does not come without its perils. If you want to be successful you will have to be pragmatic… Undoubtedly you have heard about microservices by now. I have seen many people skeptical about adopting the pattern and its potential value. The good news is- you can be pragmatic about the adoption, taking what works best and at the pace that suit you. ...

May 25, 2018 · 5 min · Bartosz Jedrzejewski
Getting Started with Kafka in Spring Boot

Getting Started with Kafka in Spring Boot

Kafka seems to only be gaining in popularity. A few years ago you could mostly see it in Big Data engineering context. These days, Kafka is starting to power more common message-oriented architectures. In this article, I want to give you a basic introduction to working with Spring Boot and Kafka. Installing Kafka on your machine One common barrier to entry for people to hack around on their machines with Kafka is how tricky the installation can be. For that very reason, I have written “How to easily run Kafka with Docker for development”– I think you will find it especially useful if you are on Windows! ...

May 21, 2018 · 3 min · Bartosz Jedrzejewski