What does it mean to run an application in the cloud? What types of clouds are there, and what responsibilities can they take away from me? Or conversely, what does it mean not to go to the cloud? To clarify these questions, we first need to identify the...
See related articles to this category
Why Event-Driven Architecture?
What is event-driven architecture? What are the advantages of event-driven architecture, and when should I use it? What advantages does it offer, and what price do I pay? In the following, we will look at what constitutes an event-driven architecture and how it...
Well documented: Architecture Decision Records
Heard about Architecture Decision Records? Anyone who moves to a new team quickly faces familiar questions. Why did colleagues solve the problem in this way? Did they not see the consequences? The other approach would have offered many advantages. Or did they see...
Performance Problems with Virtual Machines – A Personal Experience
Have you ever set up a virtual machine (VM) and noticed it slowing down unexpectedly? I've been there. I set up a VM for basic tasks; initially, everything worked perfectly. Then, performance dropped without warning. Was it my application or something deeper in the...
Overprovisioned Host System – A Nightmare
Overprovisioned host systems in virtualized environments often cause performance issues. Steal Time is a reliable indicator for identifying such bottlenecks. This article explains how to monitor Steal Time using top, the impact of high values, and how monitoring tools...
Solving Java Out of Memory Issues in Kafka-Powered Microservices
Solving Java Out of Memory Issues in Kafka-Powered Microservices What happens when a Kafka-driven Java microservice crashes repeatedly after hours of operation, failing to complete its tasks? In our project, we faced exactly this scenario: recurring Out of...
Database Performance Optimization: Simple Fixes for Slow Queries
Why does a reliable system suddenly fail to perform? Discover how a series of overlooked details caused a performance crisis and what steps solved it. A Reliable Software, a Growing Problem Our software has proven itself over the years. Customers trusted it for...
Unlocking the Secrets of HTTP 500: Firewalls, TIME_WAIT, and Performance Mastery
Sudden performance drops, unexplained latencies, and timeouts — but no clear cause? Why a structured root cause analysis is crucial when firewalls misinterpret HTTP 500, terminate TCP connections, and Axis2 AxisFaults create chaos. 1. Initial Situation: A Complex...
The Principle of Abstraction in Software Development: Simplifying Complexity
Introduction The principle of abstraction is a fundamental concept in software development that helps simplify complex systems by hiding unnecessary details. In this article, we will explore the significance of abstraction, its benefits, and how it impacts software...
The Principle of Loose Coupling in Software Development: Promoting Flexibility and Modularity
The principle of loose coupling is a fundamental concept in software development that emphasizes reducing dependencies between components. In this article, we will explore the significance of loose coupling, its benefits, and how it influences software development.
The Principle of Cohesion in Software Development: Enhancing Modularity and Maintainability
The principle of cohesion is essential in software development, focusing on creating highly cohesive and self-contained modules or components.
Separation of Concerns: Key Principle in Software Architecture
The principle of separation of concerns is a fundamental concept in software architecture. It emphasizes dividing a system into distinct parts, each responsible for a specific aspect or concern.
The Principle of Modularity in Software Architecture: Enhancing Flexibility and Reusability
The principle of modularity drives software architecture by promoting flexibility, reusability, and efficient development. In this article, we explore the significance of modularity, its benefits, and its impact on software development.
Quality Scenarios in the Software Architecture
Ever heard about quality scenarios? We are completing the development and delivering the software to the customer. But the customer is disappointed and describes the software as poor. The developers believe that they have complied with all the requirements....
Service Discovery and Software Architectures
Have you ever heard the term Service Discovery and wondered what it means? This article explains what is meant by the term service discovery in the context of software architectures. Definition of Service Discovery Service discovery is the automatic discovery of...














