Architecture Weekly

Share this post

Architecture Weekly #136 - 17th July 2023

www.architecture-weekly.com

Discover more from Architecture Weekly

Weekly Software Architecture resources to boost your knowledge and developer skills.
Over 3,000 subscribers
Continue reading
Sign in

Architecture Weekly #136 - 17th July 2023

Oskar Dudycz
Jul 17, 2023
5
Share this post

Architecture Weekly #136 - 17th July 2023

www.architecture-weekly.com
Share

Welcome to the new week!

I feel that the DevOps aspect of Event Sourcing tooling is not covered enough. Knowing how to put data in and out for development needs is not enough to know how to run Event Stores on production or even get the best developer experience. Burying that hole will be one of the lite motives of my upcoming works.

In my latest article, I explained setting up a Docker image for the Marten application. Not as complicated as it may seem, the most important is correctly configuring the code generation setup to get the best performance.

  • How to create a Docker image for the Marten application


Interestingly, we’re still using the Docker image term even though it’s not a Docker image anymore. The image definition and build process are already transferred to Open Container Initiative. We already have popular Open Source tooling like Podman, but if you’re searching for alternatives for macOS, you may have a look at OrbStack:

  • OrbStack - Fast, light, simple Docker containers & Linux machines for macOS


If we want to tackle scaling, we rarely can just let the operations team or Cloud Auto Scaling deal with that. Of course, it may be possible in some basic scenarios, but typically we need to design a plan and make our application aware of it. The latest episode of .NET Rocks podcast with Derek Comartin is a must-listen. Derek explains the basics of why we need to scale and how to untangle common myths around it:

  • .NET Rocks - Scaling a Monolith with Derek Comartin

You can also check my article, where I explain how to scale monolith when you’re in a rush. It may give you some time to define a proper strategy:

  • How to quickly scale a legacy monolith?

And consider if we shouldn’t also be scaling down:

  • Will it scale... down?


One of the biggest factors blocking us from scaling is coupling. But what does that even mean? That’s easier to say but harder to define. Yet, Vlad Khononov decided to tackle that in his talk:

  • Vlad Khononov - Balancing Coupling in Software Design

I like the methodic approach of separating the wheat from the chaff. Nice food for thoughts on why our systems are getting overcomplicated and what we can do about that.


Databases are one of the things that we try to scale, but also those that hide implicit complexity. We need to know how to operate them and what use cases we want to handle. It may appear that our idea won’t be aligned with the database design. We may need to select different types to handle our usage characteristics. Relational databases can take a lot, but we don’t need to live only with them, especially if we want to optimise critical scenarios. Watch a nice video from the Developer Voices channel with Ben Stopford discussing the evolution of databases.

  • Developer Voices - The Evolution of Databases and the Future of Database Technology (with Ben Stopford)


The number of options we need to take into account makes the cognitive load skyrocketing. Some say that “when I was starting you had to be versatile and understand more”. And that’s true to some degree, as our tooling and learning materials were terrible and low-level. Now we got abstractions speeding up our development process, but we also got more tools to orchestrate. In theory, newcomers have it all when they start, but they also need to learn all that. Plus, the global world and related problems of distributed systems. Not only technical but socio-technical. That’s why I agree that the times of 10xdevelopers are behind us.

  • Justin Searls - The looming demise of the 10x developer

We should focus on collaboration instead of justifying the weird behaviour of great tech people that cannot work as a team. If you want to go fast, go alone. If you want to go far, go together.


Still, no one said we cannot try to make ourselves as effective as possible, right? I watched Dennis Doomen talk at NDC Oslo, and I can say that’s a great set of tips&tricks that you can apply to your project. It’s a story of Dennis’ open-source work, but the advice is universal:

  • Dennis Doomen - What you can learn from an open-source project with 250 million downloads


And hey, do you know that the Thumbs-Up emoji is valid as a contract signature? It is, at least in Canada.

  • PC Magazine - Thumbs-Up Emoji Is Valid as a Signature in Contracts, Canadian Court Says

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 the Ukraine humanitarian organisation, Ambulances for Ukraine or Red Cross.


Architecture

  • .NET Rocks - Scaling a Monolith with Derek Comartin

  • Vlad Khononov - Balancing Coupling in Software Design

  • Mark Seemann - Validation and business rules

  • Bobby Calderwood, Confluent - Practical Event Modeling Course

  • Julia Evans - nginx playground

DevOps

  • OrbStack - Fast, light, simple Docker containers & Linux machines for macOS

Database

  • Developer Voices - The Evolution of Databases and the Future of Database Technology (with Ben Stopford)

Frontend

  • Theo - t3․gg - From 0 to prod for $0 (Next.js, tRPC, TypeScript, Tailwind, Prisma & More)

AI

  • GPT Engineer - Specify what you want it to build, the AI asks for clarification, and then builds it

  • MIT Technology Review - ChatGPT can turn bad writers into better ones

AWS

  • AJ Stuyvenberg - Understanding AWS Lambda Proactive Initialization

  • Yan Cui - A self-healing Lambda function that adapts its throughput based on performance

Java

  • Chris Seaton - Ten Things You Can Do With GraalVM

  • Andrzej Ludwikowski - Introducing Kalix Workflow Component

.NET

  • Oskar Dudycz - How to create a Docker image for the Marten application

  • Matthew MacDonald - Introducing C#12's Future Features

  • David Fowler - A sample showing how to setup ASP.NET Core Identity API endpoints for authentication

  • Amadeusz Sadowski - A list of C# Source Generators (not necessarily awesome) and associated resources: articles, talks, demos.

  • Nobuaki Tanaka - Managed Doom - A Doom port written in C Sharp

Coding Life

  • Justin Searls - The looming demise of the 10x developer

  • Jason Lengstorf - Clean as you go

  • Dennis Doomen - What you can learn from an open-source project with 250 million downloads

Management

  • Emily Nakashima - On Becoming a VP of Engineering, Part 1: The Path to VP

  • John Cutler - TBM 231: Productivity (The Clash)

Industry

  • The Verge - Evernote has laid off most of its US staff and will move most operations to Europe

  • AI News - Databricks acquires LLM pioneer MosaicML for $1.3B

  • The Washington Post - ChatGPT loses users for first time, shaking faith in AI revolution

Security

  • Microsoft Security - Analysis of Storm-0558 techniques for unauthorized email access

Trivia

  • PC Magazine - Thumbs-Up Emoji Is Valid as a Signature in Contracts, Canadian Court Says

5
Share this post

Architecture Weekly #136 - 17th July 2023

www.architecture-weekly.com
Share
Comments
Top
New
Community

No posts

Ready for more?

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