architecture

  • 6.8, and the passwords that were rehashed

    WordPress changes its password hashing in April, and a migration that completes only as fast as users come back.

  • A deprecation window measured in consumer releases, not months

    Ninety days sounds generous and means nothing to a consumer who ships quarterly. A window in calendar time is a policy that treats consumers as interchangeable, and they…

  • An aggregate that grew a second reason to exist

    A Subscription that had been correctly scoped in 2023 and had acquired a usage counter written thousands of times a day. An aggregate boundary is correct at a…

  • Two serialisers, one controller

    Versioning the representation rather than the code, so the business logic exists once. Duplicating the controller is the obvious move and it duplicates the authorisation, the loading and…

  • A starter kit read and not adopted

    Laravel 12 moves its starter kits out of the framework, which made them worth reading as a reference rather than as a dependency. A starter kit is for…

  • A URI version, and why it beat a header

    Three ways to version an API, and choosing the one that is visible in a log line. The header approach is more correct and the URI approach is…

  • A state file split that should have happened in 2021

    One state file for everything, and a change to a DNS record blocked by a lock held by a network apply. The apply order is the ongoing cost…

  • Problem Details, and the field a consumer parsed by position

    A standard error format, adopted in 2023, and a consumer reading the first element of the errors object rather than looking up a key. An object is unordered…

  • A prototype branch deleted after a decision

    A branch with a working framework migration on one component, kept for six weeks and then deleted on purpose. A prototype whose conclusions are recorded is finished, and…

  • Laravel 12, and a starter kit we did not use

    A major release in February that is deliberately almost nothing, and an upgrade guide that fits on a page.