Architecture Weekly - Architecture Weekly #125 - 1st May 2023
Welcome to the new week! Good fences make good neighbours. The quote comes from Robert Frost's poem but applies neatly to software design. DDD tells us about bounded contexts and how they're essential. EventStorming promises to help in distinguishing that. But the result is usually glimmering when we try to do those exercises on our own. Proper modularisation requires experience, practice and also proper techniques. Some may call them patterns, but they're not prescriptive, so I prefer to call them heuristics. You can spend much time doing your modelling katas, but the best is to mix them with learning from the others that went that way. As with Karate Kid, we need to start with painting fences to be able to understand that. On the last Architecture Weekly webinar, Radek Maziarka took the Master Miyagi role and showed us some of his modularisation heuristics. I loved the idea of distilling the most important questions that our system needs to answer and finding which events bring the data to answer them. That simple technique helps us to verify if all of those events are in the same module and, f we really have a single source of truth. Watch the recording below! Event-Driven projections are a great way to build read models interpreting data from events in multiple ways. Projection logic is predictable so that the same set of events will generate the same results. In theory, that means we're safe to run unit tests to verify them. But the real-life is not so easy. Testing is not only ensuring that our application doesn’t have bugs. For me, it’s only one of the aspects. The other is understanding how our software works. By looking at tests, we should be able to understand our application. So it’s a form of documentation and characterisation. Read more in the great Michael Feathers article: Our systems have become too complex to understand all tiny bits of the behaviour; we need to make them observable to investigate it when needed. That should also be reflected in our tests. Check more in: The biggest issue we observed last week was a Google Cloud Incident. Yes, with the capital I. We expect resiliency from our cloud. Thus, we’re investing in making our systems distributed. The basis for that is cloud regions and availability zones. We select cloud regions to have servers close to our users. But inside them, we also distribute the locations into availability zones (AZ) to minimise the accident's impact. Incidents like lack of electricity, flood, fire etc. That’s why the AZs should be kept in the distance, e.g. 50-100km. If we have redundancy and deploy our services into three availability zones, then we’d expect they won’t go down together. And that would happen if they were really distributed also in the distance. That’s not truth for Google Cloud. All the availability zones in Paris appeared to be located in the same location, just isolated by the network configuration. And then they became flooded… Intriguingly enough, the previous accident of the smaller OVH Cloud also happened in France. Many people used that to motivate moving to bigger Cloud Providers, as that won’t happen for them. Yup… Read more: Thoughtworks released the latest, 28th Technology Radar. Of course, it’s all about generative AI. It’s not that surprising and not surprising that the previous radars didn’t predict that… Still, it’s a good source of information about the software trends. Especially correct on the things about the stuff that are becoming obsolete. Speaking of which, check the report around the API trends; it seems that GraphQL is getting out of fashion. Or in other words, its usage is maturing, which doesn’t have to be a bad sign for it. The next week I’ll be giving a talk at Devoxx Greece on how to deal with privacy and GDPR in Event-Sourced systems. Even though it’s all about the proper data governance practices and not a new thing, even the police is surprised to find out when companies are playing by the rules:
Check also other links! Cheers 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
FrontendTestingAI.NET
ToolsWebAssemblyCoding LifeIndustrySecurity |
Older messages
Webinar #9 - Radek Maziarka - Modularization with Event Storming Process Level
Wednesday, April 26, 2023
Watch now (98 min) | This time we had a special guest: Radek Maziarka. He explained to us Modularization with Event Storming Process Level. Radek showed intriguing and actionable heuristics on how to
Architecture Weekly #124 - 24th April 2023
Monday, April 24, 2023
Architecture Weekly - links and resources to boost your knowledge and developer skills!
Architecture Weekly #123 - 17th April 2023
Wednesday, April 19, 2023
Welcome to the new week! Intriguingly, PostgreSQL is both popular and underrated. Many people use it because it's for free, not knowing its superpowers. Not that they're super hidden, I think
Architecture Weekly #122 - 10th April 2023
Monday, April 10, 2023
Welcome to the new week! Looks like this Architecture Weekly is focused on DevOps resources. I think that we're still in the transition phase. In theory, our tooling grew more mature, but on the
Architecture Weekly #121 - 3rd April 2023
Monday, April 3, 2023
Architecture Weekly - links and resources to boost your knowledge and developer skills!
You Might Also Like
Data Science Weekly - Issue 581
Thursday, January 9, 2025
Curated news, articles and jobs related to Data Science, AI, & Machine Learning ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
💻 Issue 444 - Check Out My New CV as a Full Stack .NET Developer!
Thursday, January 9, 2025
This week's Awesome .NET Weekly Read this email on the Web The Awesome .NET Weekly Issue » 444 Release Date Jan 09, 2025 Your weekly report of the most popular .NET news, articles and projects
💎 Issue 451 - Useful things you can do with Rails console
Thursday, January 9, 2025
This week's Awesome Ruby Newsletter Read this email on the Web The Awesome Ruby Newsletter Issue » 451 Release Date Jan 09, 2025 Your weekly report of the most popular Ruby news, articles and
💻 Issue 451 - The best way to iterate over a large array without blocking the main thread
Thursday, January 9, 2025
This week's Awesome JavaScript Weekly Read this email on the Web The Awesome JavaScript Weekly Issue » 451 Release Date Jan 09, 2025 Your weekly report of the most popular JavaScript news, articles
📱 Issue 445 - 🚀 Your Go-To List of 25 Swift Tools and Libraries for Any Project
Thursday, January 9, 2025
This week's Awesome iOS Weekly Read this email on the Web The Awesome iOS Weekly Issue » 445 Release Date Jan 09, 2025 Your weekly report of the most popular iOS news, articles and projects Popular
💻 Issue 369 - 17 Tips from a Senior React Developer
Thursday, January 9, 2025
This week's Awesome React Weekly Read this email on the Web The Awesome React Weekly Issue » 369 Release Date Jan 09, 2025 Your weekly report of the most popular React news, articles and projects
💻 Issue 451 - Mastering Express.js: A Deep Dive
Thursday, January 9, 2025
This week's Awesome Node.js Weekly Read this email on the Web The Awesome Node.js Weekly Issue » 451 Release Date Jan 09, 2025 Your weekly report of the most popular Node.js news, articles and
📱 Issue 448 - The Swift Runtime: Your Silent Partner
Thursday, January 9, 2025
This week's Awesome Swift Weekly Read this email on the Web The Awesome Swift Weekly Issue » 448 Release Date Jan 09, 2025 Your weekly report of the most popular Swift news, articles and projects
💻 Issue 446 - Great things about Rust that aren't just performance
Thursday, January 9, 2025
This week's Awesome Rust Weekly Read this email on the Web The Awesome Rust Weekly Issue » 446 Release Date Jan 09, 2025 Your weekly report of the most popular Rust news, articles and projects
JSK Daily for Jan 9, 2025
Thursday, January 9, 2025
JSK Daily for Jan 9, 2025 View this email in your browser A community curated daily e-mail of JavaScript news Advanced Query Building Techniques in Angular: Queries with Different Connectors The Query