Errata

Learning Domain-Driven Design

Errata for Learning Domain-Driven Design

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted By Date submitted Date corrected
Page Chapter 10
Testing Diamond at the end of paragraph

The testing diamond focuses the most on integration tests. When the active record pattern is used, the system’s business logic is, by definition, spread across both the service and business logic layers. Therefore, to focus on integrating the two layers, the testing PYRAMID is the more effective choice.

pyramid should be diamond

Mustafa Daşgın  Jun 16, 2022  Mar 22, 2024
PDF
Page various

P40 Figure 3-7. Change "Ad campaigns" to "Contracts" at the bottom.

P47 Exercise 3.,"The smaller the bounded context is, the more flexible the system is." Should be option A, and the rest should be changed to B, C, D in sequence.

P68 In "WHERE...visits = @prm2", "prm2" should change to "p2"

P165 "Therefore, to focus on integrating the two layers, the testing pyramid is the more effective choice." should revise to "Therefore, to focus on integrating the two layers, the testing diamond is the more effective choice."

P176 Table 11-1. Column 1 "lead-in" should change to "lead-id"

O'Reilly Media
 
Jun 28, 2022  Mar 22, 2024
Printed, PDF
Page p.103-104
sample code (LeadSearchModelProjection)

The same sample code appears twice (differing only in line breaks and indentation).
I believe the `LeadSearchModelProjection` on page 103 is an error.
I felt that the event was not reflected enough.

Shinichiro Mikami   Jul 23, 2022  Mar 22, 2024
PDF
Page Chap. 15, p. 242
2nd paragraph from top

"The Reporting bounded context subscribed only to a subset of domain events published by the CRM and used as event notification messages to fetch the calculations performed in the AdsOptimization context. However, since both AdsOptimization << MISSING TEXT: and Reporting >> bounded contexts use the same events to trigger their calculations, to ensure that the Reporting model is updated the AdsOptimization context introduced a delay. It processed messages five minutes after receiving them."

Note from the Author or Editor:
Correct, it should be:
The Reporting bounded context subscribed only to a subset of domain events published by the CRM and used as event notification messages to fetch the calculations performed in the AdsOptimization context. However, since both AdsOptimization and Reporting bounded contexts use the same events to trigger their calculations, to ensure that the Reporting model is updated the AdsOptimization context introduced a delay. It processed messages five minutes after receiving them.

Tomas Vykoukal  Nov 23, 2023  Mar 22, 2024
PDF
Page 225
"Bounded Contexts" sub-section

"In the system’s
business domain, the business entity Lead is represented by different models in
the Promotions and Sales contexts. Hence, Promotions and Sales are bounded contexts,
each defining one and only one model of the Campaign entity, which is valid in
its boundary, as shown in Figure 14-8."

"one and only one model of the Campaign entity" should be "one and only one model of the Lead entity", to my mind, because the Lead entity has been chosen as an example of conflicting model.

Note from the Author or Editor:
Correct. Is should be:
Hence, Promotions and Sales are bounded con‐ texts, each defining one and only one model of the Lead entity, which is valid in its boundary, as shown
in Figure 14-8.

Pavel Baravik  Mar 19, 2023  Mar 22, 2024
Printed
Page 247
4th exercise answer options

Since "S2 needs to be able to read the last written data in S1", on the (correct) answers, the one publishing events should be S1, not S2.

Note from the Author or Editor:
Argh! Yes, it should be the other way around:

a. S1 should publish event-carried state transfer events.
b. S1 should publish public event notifications, which will signal S2 to issue a synchronous request to get the most up-to-date information.
c. S1 should publish domain events.

Jose Andias  Apr 12, 2022  Mar 22, 2024