In lessons 1.1 through 4.5 you built models of your own. In practice you more often read someone else's: another team's design, an assistant's template, or a model that is already running. This lesson practices the opposite direction. You get an invented design with exactly eight anti-patterns from modules W6.1 through W6.4, a checklist, and a finding written out for you as a demonstration. You find the rest yourself.
Prerequisites. All four modules. The checklist for code from lesson 4.5 is not repeated; this lesson is about the design. The design is not part of Kladde.Verlauf, and this lesson changes none of the facts F-01 through F-08.
What was run. The calculation program below and a second one for the solution were compiled with .NET 10 and ran without an account. Not run against Azure is everything that needs an account. All volumes in the design are the design's assumptions, not measured values; the numbers in the findings are calculated from those assumptions.
The checklist
Go through a design in this order; "Lesson" says where the rule is.
| No. | Check item | Question to the design | Lesson |
|---|---|---|---|
| 1 | Item shape | Does a list in the item grow without bound? Is the whole item written on every change? | 1.3, 4.3 |
| 2 | Key: values | Many distinct values? Does the value never change? | 1.4 |
| 3 | Key: load | Does it spread writes and storage, not just over time? | 1.4, 3.3 |
| 4 | Most frequent query | Does the filter name the key? How many partitions does it ask? | 1.4, 2.1 |
| 5 | Expiry | Does every container that grows without end have TTL or an archive path? | 2.2, 2.5 |
| 6 | Throughput | Does the maximum come from an assumption? Does the floor rise with storage? | 1.1 |
| 7 | Index | Free text excluded, composite indexes for the frequent filters? | 2.4 |
| 8 | Sign-in | No key in settings, disableLocalAuth, data plane roles? |
3.1 |
| 9 | Client | One per process? Does the code avoid retrying 429 itself? | 1.2 |
| 10 | Vector | Dimensions, index type, and path excluded from the normal index? | 4.1 |
| 11 | Writes | ETag, repeatable, batch only within one partition? | 2.2, 2.3 |
| 12 | Operations | Alert on 429 and Normalized RU Consumption, second region? | 3.2, 3.3 |