Architecture Weekly

Share this post

Architecture Weekly #91 - 5th September 2022

www.architecture-weekly.com

Architecture Weekly #91 - 5th September 2022

Oskar Dudycz
Sep 5, 2022
1
Share this post

Architecture Weekly #91 - 5th September 2022

www.architecture-weekly.com

Welcome to the new week!

Aggregates are shown something as a Holy Grail of software design. It's a helpful pattern but not the only one that can help you guarantee consistency. It's also not highly prescriptive. The worst thing is that its name may suggest that we should focus on aggregating data (like in Ye Olde UML diagram). It is only partially true, as the focus is on consistency, so ensure that all invariants are validated. Where the aggregation comes from, then? We aggregate all business changes to be saved at once. So the Aggregate pattern can also be thought of as the business transaction or business unit of work. When designing aggregates, we should focus on behaviour and the things we need to check. Once we have that, we can start thinking about how to shape our write model. I showed how to do that in practice and different styles of implementation in my recent article:

  • Slim your aggregates with Event Sourcing!

While preparing for my Wednesday’s conference talk, I reminded myself of one of the best terms I came up with: the CRAP Theorem.

Image

It’s (unfortunately) a pretty popular interpretation of the CAP Theorem.

In it, we expect from our system:
- 100% consistency,
- 100% availability,
- 100% network partitioning tolerance.

I should probably invest in ™️ for this.

Last week, I learned a new English term: doxing. It also should get a poop image, but not the smiled one. There are pages like Kiwi Farms with people who have a hobby of harassing others and spend days locating and publicly sharing their addresses. It’s the pattern to bully them; the issue is especially with minorities. There are also companies like Cloudflare that seem to be hiding under the “free speach” and not taking responsibility for their services. Or actually, they do, but only after days or weeks of public pressure. The right to free speech doesn’t equal the right to free harassment. Read more:

  • Protocol - Cloudflare tries to ignore the world

  • Cloudflare - The Mistake that Caused 1.1.1.3 to Block LGBTQIA+ Sites Today

  • Cloudflare - Blocking Kiwifarms

Luckily, we can select providers based on our preferences, and we have options now.

Capabilities are also crucial for our applications. If we model them explicitly and share them with client applications, we may find that our design is much more straightforward. Check more in one of my favourite talks:

  • Scott Wlaschin - Designing with Capabilities

Batch processing stressed systems and handling a higher load are the hottest topics. I suggested some time ago that we should think more about scaling our system down. Yet, it’s undeniable that going up will always be important. Check more in:

  • Meadowrun - Kubernetes Was Never Designed for Batch Jobs

  • Marco Behler - Load Testing: An Unorthodox Guide

Have you ever fixed a 23-year-old bug? Some Architecture Weekly readers are younger than that. Some people do that, read more:

  • Daniel Stenberg - A bug that was 23 years old or not

Also, I’m a bit afraid, of the news I want to share, as the floppy disk is an icon of this humble newsletter, but: Japan is declaring war against floppy disks. Surprisingly, they’re still using them a lot, check:

  • The Guardian - Why Japan’s war on disks could prove to be another flop

Check also other links!

Cheers
Oskar

p.s. I invite you to join the paid version of Architecture Weekly. It already contains the exclusive Discord channel for subscribers (and my GitHub sponsors), monthly webinars, etc. It is a vibrant space for knowledge sharing. Don’t wait to be a part of it!

p.s.2. Ukraine is still under brutal Russian invasion. A lot of Ukrainian people are hurt, without shelter and need help. You can help in various ways, for instance, directly helping refugees, spreading awareness, and putting pressure on your local government or companies. You can also support Ukraine by donating, e.g. to Red Cross, the Ukraine humanitarian organisation. You may also consider joining Tech for Ukraine initiative.


Architecture

  • Scott Wlaschin - Designing with Capabilities

  • Christoph Knauf - Architecture documentation as code with Structurizr and Asciidoctor. Part 1: Workflow and tooling

  • Iain Cambridge - GDPR For Developers By Example

  • Alberto Brandolini - Collaborative Process Modelling with EventStorming

  • Happy Path Programming Podcast - The End of Ivory Tower Architecture with Andrew Harmel-Law

  • Peter Royal - Event Sourced Business Applications

DevOps

  • Meadowrun - Kubernetes Was Never Designed for Batch Jobs

  • How to manage multiple environments with Terraform

  • Jason Kulatunga - Running Cron in Docker

Testing

  • Jakub Pilimon, Layla Porter - Write More Maintainable, Testable Code with Dependency Injection

  • Marco Behler - Load Testing: An Unorthodox Guide

AI

  • Simon Willison - Stable Diffusion is a really big deal

Hardware

  • The Guardian - Why Japan’s war on disks could prove to be another flop

.NET

  • Oskar Dudycz - Slim your aggregates with Event Sourcing!

  • Jon P. Smith - A .NET distributed cache with a ~25 nanosecond read time!

  • Andrew Lock - Using CancellationTokens in ASP.NET Core minimal APIs

  • Microsoft - Performance Improvements in .NET 7

Swift

  • Swift - Moving “The Swift Programming Language” book to open source

Tools

  • GitHub - Release Radar · August 2022 Edition

  • ASCIIFlow - A client-side only web based application for drawing ASCII diagrams

WebAssembly

  • Second State - Running JavaScript in WebAssembly with WasmEdge

Coding Life

  • Dylan Beattie - Plain Text

  • Joe Dunleavy - Contributing to open source - taking the dive

  • Amir Rachum - How to pick a starter project that'll make someone quit

Industry

  • Protocol - Cloudflare tries to ignore the world

  • Cloudflare - The Mistake that Caused 1.1.1.3 to Block LGBTQIA+ Sites Today

  • Cloudflare - Blocking Kiwifarms

Security

  • AWSGoat - A Damn Vulnerable AWS Infrastructure

  • Daniel Stenberg - A bug that was 23 years old or not

Trivia

  • Praneet Rohida - The production ratio and the difference between information, knowledge, and wisdom

Share this post

Architecture Weekly #91 - 5th September 2022

www.architecture-weekly.com
Comments
TopNewCommunity

No posts

Ready for more?

© 2023 Oskar Dudycz
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing