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
Discovering “Clean Architecture” with Uncle Bob

Discovering “Clean Architecture” with Uncle Bob

Recently I have been taking a bit of a step back from microservices and trying to look at systems architecture from a more general perspective. With that mindset, I have picked up “Clean Architecture” (Amazon) by the “Legendary Craftsman” (that’s probably the publisher’s enthusiasm!) Robert C. Martin “Uncle Bob”. What follows is my thoughts and overall review of the book. SOLID foundations The book starts quite a bit below the abstract levels of architecture. We are treated to a very entertaining review of the journey from Structured Programming, through Object-Oriented Programming and ending on Functional Programming. ...

July 14, 2018 · 6 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
Technical Architects - the role, the job and the value

Technical Architects - the role, the job and the value

Technical Architect is a job that many people understand differently. Some people argue Technical Architects should only design systems, staying hands-off, while others would see them as being deeply involved in the development of systems. In here I will explore the role of Technical Architects, the job itself and the value they bring. The Role of a Technical Architect All systems have technical architectures. Sometimes this architecture is decided and designed, other times- it happens by chance. ...

June 30, 2018 · 6 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
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
Microservices - the Architecture of Choices

Microservices - the Architecture of Choices

One thing that differentiates microservices architecture from more traditional, monolithic development styles is the number of choices that have to be made. Which frameworks (if any) are you going to use? How to deal with configuration, orchestration or choreography etc. It may feel overwhelming. In this article, I will give you some advice on how to approach this Architecture of Choices with confidence and success. I enjoy having multiple choices and making decisions about the architecture. For some people and projects, this is a scary thing. It does not have to be. With the advice presented here, you can take back control and feel positive about the choices that you get to make. ...

April 18, 2018 · 5 min · Bartosz Jedrzejewski
CQRS - a simple explanation

CQRS - a simple explanation

Command Query Responsibility Segregation (CQRS) is a pattern that causes quite a lot of confusion. With the popularity of microservices and the event-based programming model, it is important to know what CQRS is. In this article, I will provide you with a simple explanation. To understand CQRS it is important to get some basic terms and concepts right. The first that often appears next to CQRS is CRUD. What is CRUD? CRUD stands for Create, Read, Update and Delete. When you think about this, this is what most basic software systems do. You have some records, you may want to read some records, update them, create or delete. ...

March 11, 2018 · 4 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