Architecture Weekly #119 - 20th March 2023
Welcome to the new week!
Postgres is a shapeshifter. In Marten, we're changing it into a document database and event store. We provide built-in read models. Projecting events straight into Postgres gives you enough power for most common cases. Yet, sometimes you need to do more.
I wrote in my last article about how you could build a projection to other databases using Elasticsearch as an example:
Gunnar Morling also wrote an incredible guide on how to use Postgres Write-Ahead Log as a source of events, notifications and a backbone of the message flow.
Postgres is great, but do you know what’s the most deployed relational database? It’s SQLite. It can be used, and it’s used anywhere. You can also run it on edge, IoT, and WebAssembly, making it potentially a building block of the decentralised infrastructure. That’s what Philip O'Toole is trying to do with RQLite. Read more in his lessons learned from building it last nine years:
Are databases must haves?
What if I told you you could scale your system to millions of users using Google Sheets as storage? Ok, I won’t. I’ll let Levels.fyi told you how they do it:
Now homework for you. Could you do it with your system by replacing your database with some other eccentric type of storage? How would you approach that if you had to?
Interesting Architecture composition with unusual building blocks is explained in the following article:
It’s worth doing mind exercises by putting a limitation on you and thinking about how you could approach your design without having all the basic building blocks that you just blindly assume. Not always will something new show up, but you may be surprised by what you find.
Read also a nice explanation of how ATM infrastructure works. This can also be nice gymnastic as it also might not be how you expect it:
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
Databases
Gunnar Morling - The Wonders of Postgres Logical Decoding Messages
Philip O'Toole - 9 years of open-source database development
DevOps
Testing
AI
AWS
JavaScript
.NET
João Antunes - Mapping ASP.NET Core minimal API endpoints with C# source generators
Steve Gordon - An Introduction to Elasticsearch for .NET Developers
TypeScript
Coding Life
Management
Trond Hjorteland - Sociotechnical Systems Design for the “Digital Coal Mines”
Harvard Business Review - How Chinese Companies Are Reinventing Management