Software complexity

Software complexity

architecture

Complexity is the primary enemy of software design and architecture. The primary job of a software architect is to remove, reduce, or manage complexity in that order. But what if the problem space itself is complex? How do you do that? What does it even mean? What is complexity, anyway?

There are actually multiple types of software complexity, and each type requires a different approach.

What is abstraction

What is abstraction

architecture

Developers use the word "abstraction" regularly, yet there is limited understanding of what it means. In a broader sense, abstraction has been overshadowed by its use in some languages to denote a method or class that will be overwritten later, as well as the phrase "use abstraction." is understood to mean "write an abstract class.".

Abstraction is one of the most important techniques for achieving decoupling and stabilizing your public interfaces at any level.

Modulith structure

Modulith structure

architecturebackend

There are many ways to create a Modulith, and I will introduce you to one of them. The important parts that we will discuss are: Application layer, Business modules, Facades / Repositories, Event bus/broker, CQ Router and Utilities.

Understanding the roles of these parts is essential to building a code base that won't end up as a "big ball of mud".

The modulith way

The modulith way

architecture

The monolithic style has a bad reputation, but it is useful for smaller applications. The problem is not the monolith itself, but rather how it is written.

Why choose a monolith over a distributed architecture, such as microservices? Networking creates its own set of problems. There are benefits, but also costs.

Modular monolith - modulith is the way how to start application.

12345

We use cookies and other technologies, such as Google Analytics, to analyze website traffic. This helps us understand how visitors interact with our site.

More info

This website uses Google Analytics, a web analytics service provided by Google. Google Analytics uses cookies to help us analyze how users interact with our site. The information generated by the cookie about your use of the website (including your IP address) will be transmitted to and stored by Google. We use this information to compile reports on website activity and provide other related services.

We use analytics cookies to improve our services. We do not use them for marketing or advertising purposes. We do not sell this data.