Software Architecture

The Role Of A Software Architect

The role of a software architect

Although there is no an exact and shared definition of what is the service of software architecture, I like to compare it with an architecture of buildings. In the sense that an architect normally has a big picture vision, defining … Read More


ORM: avoid using many to many relationships

The usage of ORMs (data mappers) comes with a great power but also with a great responsibility. ORMs give us a convenient manner to handle databases avoiding some boilerplate; they also can be used incorrectly, this way being a source … Read More

Key Software Architecture Metrics

Research Results: Key software architecture metrics

If you remember my article about Software Architecture Quality Attributes, you know that we have been conducting a survey to find out key software architecture metrics that leading companies and software architects use. As  quality of a software’s architecture is … Read More

Architectural Fitness Function

Architectural Fitness Function: build measurable evolutionary architecture

Evolutionary architecture is something every software architect thinks about. It supports guided, incremental change as the first principle across multiple dimensions. To support this evolution, fitness functions can help in finding how well a system meets specified architecture goals and … Read More

Key Software Architecture Quality Attributes

Key Software Architecture Quality Attributes

Software projects are becoming complex, larger, more integrated, and are implemented by the use of several varieties of technologies. These various technologies need to be managed and organized to deliver a quality product. Quality attributes usually assessed and analyzed at … Read More

Software Architecture Patterns

5 Major Software Architecture Patterns

In the Global Software Architecture Summit we were discussing software architecture patterns a lot and I decided to write an article about it, highlighting leading software architects insights.    First of all, what are software architecture patterns? Architectural patterns are ways … Read More

Code Smells

Code smells that are found the most

At Apiumhub we always focus on quality and best practices in Software development. When we don’t start working on a project from scratch, we very often find code smells and this article is about it. Martin Fowler very well explained … Read More

The Circuit Breaker Pattern

The Circuit Breaker Pattern

In today’s article, I’d like to focus on the Circuit Breaker pattern. Some background: In a previous article we talked about how to handle transient failures through the application of the Retry pattern. As a reminder, transient failures are those … Read More

Evolutionary Architecture

Evolutionary Architecture for Developers

What is architecture To try to stay away from a never-ending discussion, we’re siding with a definition similar to: The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, … Read More

Special Case Pattern

Special Case Pattern

Don’t let your specific case increase your code complexity: Special case pattern In our day to day, there is our application up and running and suddenly a new requirement is required. So we start typing more code to fit that … Read More

Retry Pattern

Retry Pattern: examples & recommendations

Today I would like to talk about Retry pattern. In distributed applications, where constant communications are made between services and/or external resources, temporary or transient failures (transient failures) can occur when interacting with these environments. These failures can be caused … Read More


DRY – Don’t Repeat Yourself

Don’t Repeat Yourself ( DRY ) is a principle of software development and its main goal is to avoid code duplication. “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system” Andrew Hunt and David Thomas: … Read More

Secured By miniOrange