software architecture

Software Architecture: The Hard Parts Modern Trade-Off Analyses for Distributed Architectures

Introduction

There are no easy decisions in software architecture. Instead, there are many hard parts -- difficult problems or issues with no best practices -- that force you to choose among various compromises. The best design an architect can create is the least worst collection of trade-offs -- no single architecture characteristic excels as it would alone, but the balance of all the competing architecture characteristics promote project success.

The Importance of Data in Architecture

It has been said that data is the most important asset in a company. Businesses want to extract value from the data that they have and are finding new ways to deploy data in decision making.

  • Operational data

    Data that is used to run the business. This data is defined as Online Transactional Processing (OLTP) data. Involves Create, Read, Update, Delete (CRUD) operations.

  • Analytical data

    Data that is used to analyze the business. This data is defined as Online Analytical Processing (OLAP) data. Involves Read operations.

Architectural Decisions Records

ADR: A short noun phrase containing the architecture decision

Context In this section of the ADR we will add a short one- or two-sentence description of the problem, and list the alternative solutions.

Decision In this section we will state the architecture decision and provide a detailed justification of the decision.

Consequences In this section of the ADR we will describe any consequences after the decision is applied, and also discuss the trade-offs that were considered.