Tomas Tulka's Blog

Random thoughts about programming and other stuff.


Software Architecture

Keep Options Open

Keeping options open is one of the most useful principles of Clean Architecture. Let’s dive deeper with code examples in Java and Spring framework.

Spring Boot Custom Components

Let's build domain-oriented custom components with Spring Boot starters, auto-configuration and configuration properties.

How Cohesion and Coupling Correlate

Cohesion done right reduces the coupling and complexity of systems.

Monolithic Objects

Don't model the real world, model your business!

You Aren’t Gonna Need Microservices

Do you really need a cluster of pods, service mesh, and stream-processing platform right now?

Good and Bad Monolith

It is unfortunate that monolith has become a dirty word. In fact, a physical monolith is typically the right thing to do. Pure evil is monolithic thinking.

No Internals in Configuration API

Configuration is part of the application API, so the same rules apply to it: no leak of implementation detail.

Colored Services

Defining service boundaries is hard. Let's bring some colors and make it fun!

Multitenancy and the Cloud

Multitenancy was and still is a very popular and successful architectural pattern of the last decades. But, that is likely to change with the advent of cloud computing.

Domain-Driven Serverless Design

One reason I really like the serverless architecture approach is being pretty selfish: one has to care only about what matters - the code.