Skip to content

Files

Latest commit

 

History

History
91 lines (32 loc) · 6.54 KB

strategic-monoliths-and-microservices--driving-innovation-using-purposeful-architecture.md

File metadata and controls

91 lines (32 loc) · 6.54 KB

Strategic Monoliths and Microservices: Driving Innovation Using Purposeful Architecture

> Home

Chapter 5: Contextual Expertise

Core Domain is a subdomain within which a focused core strategic business capability is developed (link)

Trying to harmonize all the meanings of policy into a single software component is fraught with problems (link)

Chapter 6: Mapping, Failing, and Succeeding—Choose Two

This chapter promoted the use of Context Maps to identify relationships between any two teams and their respective Bounded Contexts (link)

In general, abstractions adopted in the name of code reuse or even emphasis on concrete reused goals will lead to unwanted baggage at best, and potentially extensive rework (link)

known as Context Maps (link)

Chapter 1: Business Goals and Digital Transformation

Working in #agile should boil down to these four things: collaborate, deliver, reflect, and improve [Cockburn-Forgiveness]. (link)

The software entropy metaphor names the condition of a software system where change is inevitable, and that change will cause increasing uncontrolled complexity unless a vigorous effort is made to prevent it [Jacobson] (link)

Part II: Driving Business Innovation

Aggregates are entities that have a special purpose—namely, representing a set of data that per business rules must remain consistent at all times (link)

Domain services provide business logic that operates on entities, aggregates, and value objects, but are not directly associated with any one of the types on which they work (link)

Chapter 2: Essential Strategic Learning Tools

A number of ADR templates are available, but Michael Nygard proposed a particularly simple, yet powerful, one [Nygard-ADR]. His point of view is that an ADR should be a collection of records for “architecturally significant” decisions—those that affect the structure, nonfunctional characteristics, dependencies, interfaces, or construction techniques (link)

Each ADR should be stored along with the source code to which it applies, so they are easily accessible for any team member (link)

Plain and simple, this book promotes a very simple and versatile architecture style. It is known by a few different names. Two of the most common names for this style are Ports and Adapters and Hexagonal. It is also known as Clean Architecture, and a less common name is Onion Architecture (link)

Figure 2.6 Impact map for White-Label Auto Insurance. (link)

Modularity is an indispensable foundation for Conway’s Law as well. That’s because modules are where we should capture critical communication and what is learned from it. At the same time, modules can save teams from smearing mud all over their solution space. Modules are used both as conceptual boundaries and as physical compartments. (link)

In his essay “Delaying Commitment” (IEEE Software, May/June 1988), leading British computer scientist and professor Harold Thimbleby observes that the difference between amateurs and experts is that experts know how to delay commitments and conceal their errors for as long as possible, repairing flaws before they cause problems. Amateurs try to get everything right the first time, so overloading their problem-solving capacity that they end up committing early to wrong decisions [DrDobbs]. (link)

Chapter 3: Events-First Experimentation and Discovery

It’s cheap to make these kinds of “mistakes” and learn from them. Removing a lot of unnecessary stickies is far better than imagining too few. (link)

Some practitioners—including the originator of EventStorming, Alberto Brandolini—conclude that it is impossible to use this technique properly with online collaboration tools [Remote-Bad] (link)

The basic idea behind EventStorming is to model a time-ordered series of descriptive happenings in a system (link)

The key point: Teams will often start out to solve one set of problems, but discover greater opportunities to innovate through experimentation and collaboration (link)

From a software perspective, an event captures a record of the fact that a command was executed. It’s a set of data that is named in such a way that it expresses an action that occurred in the past (link)

Chapter 7: Modeling Domain Concepts

Modeling Domain Concepts (link)

Vikram: [Continue from here]

> Home