Architecture Weekly #166 - 12th February 2024
Welcome to the new week! I want to introduce you to Emmett! Finally, I gathered the patterns around Event Sourcing and CQRS I used last year and grouped them into a Node.js package. Check the documentation: Why Emmett? Because I'd like to take your event-driven tooling back to the future! The goal is to help reduce the boilerplate, enhance strong sides and help you skip common mistakes. Currently, you can find there abstractions for patterns like business logic (e.g. Decider), business workflows and command handling. More will come later. Read also more in the blog where I expanded on my motivation behind it: One of the things that are too often missed while doing event-driven design is data governance practices. We’re taking things too lightly. It may work well in some environments, but for the bigger enterprises, that’s too optimistic if we want to use event-driven tools as a communication backbone. Wim Debreuck explained in his talk why and how we can and should think more responsibly about defining our event model. He showed how to put our events in a broader context. He used Kafka as an example. Event Streaming is not the same as Event Sourcing, but both come from event-driven tooling, and many patterns are the same, and we can learn from each other. It’s essential to think about what should happen with the events we store, as it’s just the beginning of the journey. Check also: There was an interesting decision around the data governance. The Netherlands agency SIDN (Stichting Internet Domeinregistratie Nederland) decided to outsource part of its '.NL' domain registry services to Amazon Web Services (AWS). Initially, that went silent but ignited controversy, highlighting tensions between commercial interests and the collective security, stability, and sustainability of the Dutch (and the whole) Internet. In theory, the World Wide Web is a global thing, but the reality is that we still have borders, even if we don’t see them clearly on the Internet. It’s an interesting study of data sovereignty, so potentially, security and privacy around data should have lower priority than cutting costs or ambitions to enter the SaaS market by agencies. That raises concerns about European digital sovereignty and the long-term implications of entrusting essential services to major US cloud providers (or others). It has the potential to conflict with national interests and preserve digital autonomy. The case is ongoing. The Dutch Parliament is now questioning the decision, calling for stronger oversight, and reevaluating the criteria for managing such critical infrastructure. Read more in: On the other topic, Microsoft released two interesting case studies:
The first article is focused on using OpenAI services from your systems and doing that efficiently. Surprisingly, it’s not about AI per se, but the techniques here can be applied to any other integrations with external services. They showed their recommendations on how to do “smart load balancing”. Why is it smart?
This pattern should be applied carefully, respecting the specific integration characteristics, but can be useful. It’s nice that they also provided the repository with the code showing how to do it in practice. The second link explains how The Experimentation Platform at Microsoft (ExP) is doing A/B testing. They show how they’re technically organising their infrastructure to check different scenarios and features for various users. It’s a nice case study of using and configuring tools like reverse proxy to make the testing environment safe and predictable. In a similar spirit, there’s an article from Luc van Donkersgoed about considerations on single tenancy vs multi-tenancy. He wrote that switching from single-tenant to multi-tenant architecture for the Event-Broker e-Commerce (EBE) platform is like moving from private houses to a shared apartment building Initially, EBE's single-tenant setup offered simplicity and security, with each user having their resources. This made growth and scalability challenging due to limited resources and slower updates. Transitioning to multi-tenancy is aimed at sharing resources efficiently, like utilities in an apartment, to support growth and improve update speeds. However, this brings new challenges in managing shared spaces securely. The shift is a trade-off between the need for individual security and the benefits of shared efficiency. Read more: Check also a really decent write-up by George Ball explaining patiently the relationship between throughput and latency. It also shows scaling considerations: Last but not least, take a read of: Remember that no one will remember your overtime hours besides you and your family. 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
DevOpsTestingAzureGoJava.NET
Node.js
PerformanceManagementIndustrySecurity
TriviaInvite your friends and earn rewardsIf you enjoy Architecture Weekly, share it with your friends and earn rewards when they subscribe. |
Older messages
Architecture Weekly #165 - 5th February 2024
Monday, February 5, 2024
We started with the DevOps and Platform approach pitfalls, discussing Charity Majors's take and adding Conway's law into that. Then we reviewed the strategies for architecting multi-region
Architecture Weekly #164 - 29th January 2024
Monday, January 29, 2024
MVP, RAT, MVA and other minimum viability approaches
Webinar #16 - Simple patterns for events schema versioning
Friday, January 26, 2024
Watch now | Events schema versioning, or in other words, events evolution, is one of the first questions I get when explaining Event Sourcing. The topic may look scary, as how to evolve data that, by
Architecture Weekly #163 - 22nd January 2024
Monday, January 22, 2024
Today, we discussed the evolution. Not humankind but our data models and architecture. We found actionable guidance on how DDD techniques can help with that. We had a look at the Slack migration to
Architecture Weekly #162 - 15th January 2024
Monday, January 15, 2024
We started with getting back to Leslie Lamport's works, Cynefin and added Wardley Mapping to the game. We discussed how to and how to not think about our decisions and strategy. Also for product
You Might Also Like
Overcoming Perfectionism: How to Break Free from the Enemy of Progress
Wednesday, November 27, 2024
Discover how perfectionism hinders progress and learn practical strategies to overcome the fear of imperfection, boost productivity, and achieve your goals without getting stuck in the pursuit of
🖤 Laravel Black Friday Deals!
Wednesday, November 27, 2024
The biggest deals of the year Laravel Black Friday Deals View in browser Laravel News Editor Note: We are sending this outside the regular Sunday newsletter schedule because some of these specials end
BetterDev #271 - Memory: The Forgotten History and Why did Windows 95 setup use three operating systems?
Wednesday, November 27, 2024
Better Dev #271 Nov 26, 2024 Hi all, Welcome to thanksgiving issue of BetterDev. Hope everyone had a safe and warm thanksgiving. It's getting so cold these days. If you are in warzone such as
Mapped | Unemployment Rate By U.S. State in 2024 💼
Tuesday, November 26, 2024
As of October 2024, DC and Nevada tied for the highest unemployment rate in the US at 5.7%. Which states saw the lowest rates? View Online | Subscribe | Download Our App FINAL CHANCE - ENDS TONIGHT!
🔊 7 DIY Tips for Soundproofing a Room — Why I Switched to Xfce for Linux Mint
Tuesday, November 26, 2024
Also: Home Theater Sound Terms Explained, and More! How-To Geek Logo November 26, 2024 Did You Know The shiny layer of a CD doesn't contain the data; the plastic polycarbonate layer does. The shiny
JSK Daily for Nov 26, 2024
Tuesday, November 26, 2024
JSK Daily for Nov 26, 2024 View this email in your browser A community curated daily e-mail of JavaScript news JavaScript Certification Black Friday Offer – Up to 54% Off! Certificates.dev, the trusted
NumPy, Loop Targets, Vector Animation, and More
Tuesday, November 26, 2024
NumPy Practical Examples: Useful Techniques #657 – NOVEMBER 26, 2024 VIEW IN BROWSER The PyCoder's Weekly Logo NumPy Practical Examples: Useful Techniques In this tutorial, you'll learn how to
Your Games Quarterly newsletter has arrived
Tuesday, November 26, 2024
What's new for games in Google Play and Android Email not displaying correctly? View it online November 2024 The First Developer Preview of Android 16 The First Developer Preview of Android 16
Daily Coding Problem: Problem #1620 [Hard]
Tuesday, November 26, 2024
Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Dropbox. Sudoku is a puzzle where you're given a partially-filled 9 by 9 grid with
Final Hours: Help Save "The Art of Data" From Falling Short 🙏
Tuesday, November 26, 2024
Will Visual Capitalist end up revealing the secrets behind data storytelling? There are 12 hours left to change the fate of "The Art of Data". View Online | Subscribe | Download Our App Help