small medium large xlarge

The latest version of the book is P1.0, released 11 months ago. If you've bought a PDF of the book and would like to update it to this version (for free), visit your home page.

By default this page displays the errata for the latest version of the book. If you have a previous version, select it here:

If you've found a new error, please submit it.

  • Typo
  • Tech. error
  • Suggestion
  • Maybe next edition
  • Not a problem
  • Reported in: B5.0 (22-Dec-17)
#82399
PDF page: xi
The preface section "Other Approaches To Domain Modeling" lists cases in which DDD may not be the best choice. The domain in which I work may fit one ...more...
  • Reported in: B5.0 (23-Nov-17)
#82297
PDF page: 1
Severity Code Description Project File Line Suppression State Error Unexpected symbol ':' in definition. Expected incomplete structured construct at...more...
  • Reported in: P1.0 (18-Apr-18)
#83019
Paper page: 18

The picture on page 18 is the same as on page 17 (two of the bounded contexts should be combined, and they are not).--Alexander Luzgarev

  • Reported in: P1.0 (25-Feb-18)
#82824
PDF page: 18

The figure on page 18 should be different to the one on page 17.--Johannes

  • Reported in: P1.0 (16-May-18)
#83100
PDF page: 18

The chart on page 18 is just the same as it is on page 17 and it doesn't include the legacy system presented--Michal

  • Reported in: P1.0 (25-Feb-18)
#82825
PDF page: 21

this language should used everywhere -> this language should be used everywhere--Johannes

  • Reported in: P1.0 (09-Mar-18)
#82883
Paper page: 23
"A Command is ... or another event. If the process succeeds, the state of the system changes and one or more Domain Events are recorded." Is it reall...more...
  • Reported in: B1.0 (02-Jun-17)
#81623
PDF page: 51
In the kindle app for iPad code is not indented so it's almost useless. The same code in the EPUB version on iBook app looks fine. E.g function isEven...more...
  • Reported in: P1.0 (18-Apr-18)
#83017
Paper page: 61
Top of page has the following function: let squarePlusOne x = let square = x * x square + 1 The description following the code describ...more...
  • Reported in: P1.0 (02-May-18)
#83056
Paper page: 67
Given... type​ OrderQuantity = ​ | UnitQuantity ​of​ ​int​ ​ | KilogramQuantity ​of​ decimal let​ anOrderQtyInKg = KilogramQuantity 2.5 ...more...
  • Reported in: B3.0 (29-Jul-17)
#81894
PDF page: 78
?remotesession=75848559-655b-4891-a1c3-8e8b8f581235&dttm=2017-07-28 15:48&validFor=3600&OT=Whatson&OF=AFTix11-2&OC=WhatsonHi Scott, On page 78, you...more...
  • Reported in: B5.0 (01-Jan-18)
#82428
PDF page: 89

"type PlaceOrder = UnvalidatedOrder -> PlaceOrderEvents" - shouldn't that be "ValidatedOrder"?--Franz Amador

  • Reported in: B5.0 (05-Jan-18)
  • Fixed: 27-Mar-18, awaiting book release
#82438
PDF page: 103
"Other entities should only reference the Aggregate by its identifier" -> "Other entities should reference the Aggregate only by its identifier" (misp...more...
  • Reported in: B4.0 (19-Oct-17)
#82165
PDF page: 105
Couldn't it be that two or more aggregates had an important role in an use case and therefore had to be in a single transaction? I read this in anothe...more...
  • Reported in: B5.0 (12-Jan-18)
#82490
PDF page: 120

"only update one aggregate per transaction" -> "update only one aggregate per transaction" (misplaced 'only')--Franz Amador

  • Reported in: B5.0 (04-Jan-18)
#82433
Paper page: 147

To be had -> to be held

  • Reported in: P1.0 (09-Feb-18)
#82760
PDF page: 178
in the second picture (Validate Order Validated Order -> X GetProduct Price, etc.) there is typo GetProduct Proce instead of Price, inside the picture...more...
  • Reported in: P1.0 (11-Mar-18)
#82901
Paper page: 204
"Next, acknowledgeOrder and createEvents have no errors - they are "one-track" functions ..." but unfortunately they can't be composed like shown in t...more...
  • Reported in: B5.0 (05-Jan-18)
#82444
PDF page: 210
When using bind with validateOrderAdapted and priceOrderAdapted you have the resulting pipeline function of: let placeOrder unvalidatedOrder = ...more...
  • Reported in: P1.0 (06-Feb-18)
#82754
PDF page: 235
2nd paragraph in "Serializing Records and Choice Types Using Maps" section has dashes not rendered properly: DTO structure&emdash;a key-value map c...more...
  • Reported in: P1.0 (17-Mar-18)
#82918
PDF page: 235
Following text contains "&emdash;". This seems like an improper formatting. "The advantage of this approach is that there’s no “contract” implicit in...more...
  • Reported in: P1.0 (19-Mar-18)
#82924
Paper page: 267
In the "Using Active Patterns to Simplify Business Logic" section you showed a way to separate the code for categorization and business logic into dif...more...