TWIL: July 25, 2021
One more week has gone by, and a lot of learning as well. Below are my highlights from this past week.
Episode 1745: CUPID with Dan North
You have probably heard of the SOLID principles of object-oriented programming which are intended to make software designs more understandable, flexible and maintainable. SOLID is an acronym for the following five principles:
- Single-responsibility principle
- Open-closed principle
- Liskov substitution principle (aka Design by Contract)
- Interface segregation principle
- Dependency inversion principle
In this awesome episode, Dan North explains how these principles could be reinterpreted into CUPID:
- Unique philosophy
Episode 1749: htmx with Carson Gross
For this week’s architecture articles, I bring you four interesting links.
HATEOS (Hypermedia as the Engine of Application State)
If you are designing an API, you should definitely know what is HATEOS and its benefits.
Introduction to Event-Driven Architecture
Great article explaining what is the Event-Driven Architecture paradigm and why it fits well in a Microservices architecture.
Kafka vs RabbitMQ: Which is the right messaging tool for you?
One is an event-streaming platform and the other is a message queueing broker, but they are usually competitors when designing decoupled solutions. This article does a pretty good job comparing them.
How Reddit Solved DevOps’ ‘Three-Stooges-in-a-Door’ Problem
Article about how Reddit solved the “Thundering Herd” problem (for example, when a sudden peak of requests renders a website unable to serve any of them) by deduplicating the requests at the microservice level.
This week I was studying authorization patterns in microservice architectures, and that’s why most of my learning is around that topic. Below are some of the most interesting posts I found.
Microsoft Azure is a very large platform, with a huge breadth of services. Sometimes just getting to know what exists and what new services have launched can be a real challenge. Here’s what I’ve been reading this week.
Mapping of On-Premises Security Controls Versus Services Offered by Major Cloud Providers
Although my focus is on Microsoft Azure, I feel it is essential to understand how the services of each provider map to their competitors. This article presents such a map (updated on July 13th, 2021) with a focus on security services and controls.
What is Azure Files?
If you need to share files across cloud and on-premises environments, or for application lift-and-shift scenarios, Azure Files is a compeling services.
This is a really cool project. Bicep is a Domain Specific Language (DSL) to deploy Azure resources declaratively. It is an abstraction over ARM templates, and Bicep code is transpiled to standard ARM template JSON files. Think of it as an evolution to ARM Templates.
A fully managed, unified data governance service, which can scan and classify data from on-premises and multicloud data sources. This hybrid data can then be effortlessly discovered by everyone using Purview Data Catalog, making it also an invaluable tool for compliance.
Microsoft Dataverse, previously known as Common Data Service, is a data storage service in the cloud meant to support a business-focused definition of an organization’s data for use within applications. It is a flexible and scalable table-based data storage solution, managed by Microsoft and globally distributed, with a tight integration with the Power Platform.
I wanted to understand which Azure services were available on-premises, through Azure Stack Hub, and specifically if Azure Event Hubs was one of those, so I went through the following articles to find out.
Building Minimal APIs In .NET 6
Do you think .NET is too complex for the microservice you are trying to build? Well, Microsoft agreed with you and has introduced the Minimal API concept into .NET 6 (Preview). It takes away all that stuff you don’t need and you end up with just the bare bones.
Microsoft Planner: How I manage tasks automatically
I really like articles like this one. Manuel is describing is experience in automating the process of publishing his TWIL posts, using Planner to store the links and descriptions for the articles he reads and using Power Automate to generate the final post.
Power Automate: The power of copy-paste
A great time saver for anyone using Power Automate, the “My Clipboard” feature is sort of a hidden gem (it’s not that hidden actually, but I never used it). Great stuff.
Here’s a new batch of design patterns for your enjoyment. I’m thinking about organizing all these patterns into a simple catalog on this website… Do you think that would be useful? (I know there are already a bunch of other pattern-focused websites out there).
Have a great week!