When designing systems, especially distributed systems, the flow of data and service requests must remain continuous. This brings us to an architectural design pattern called the Circuit Breaker. It comes from electronics. Simply, it is designed to stop the flow when something goes wrong. This prevents potential cascading failures in a system. Understanding the Circuit Breaker Pattern Imagine a scenario where a service relies heavily on another third-party service. However, that third-party service becomes slow or starts to fail at some point. Without any preventive measures, our service will keep making requests, waiting for timeouts, even getting stuck. This is…
-
-
Today’s topic is a quite popular one, a fuzzy word getting more and more popular once it used to be a niche architectural pattern only. When we think about building software, a lot of the time and energy is spent thinking about where and how it will run. Serverless architecture, also known as Function as a Service or FaaS, helps this to change. Instead of planning the environment to run, developers mainly write functions and let cloud providers like AWS or Azure handle where it runs. Briefly describing, Serverless is an architectural model where cloud providers fully manage code execution.…
-
Domain-Driven Design, or DDD for short, isn’t about code at first. It’s about understanding the main business inside out, and then designing software that speaks the business’s language. Think about a hospital system. Before we write code, we would talk about patients, doctors, treatments, and appointments. By diving deep into the “domain” or the core of the business, we create software that feels like it was tailor-made for it. DDD is super useful for businesses with unique rules and ways of doing things. Let’s take insurance as an example. They’ve got tons of rules on who gets covered, how much…
-
There’s no shortage of tools and technologies to make developers’ lives easier In the world of cloud computing, and one such offering comes from Microsoft which is Azure Functions. Here, we’ll unravel the magic behind Azure Functions and explore why it’s becoming a favourite for certain architectures. At its core, Azure Functions is a serverless compute service. “Serverless” might sound misleading, as there definitely are servers involved; however, the idea is that the responsibility of server management, scaling, and infrastructure concerns are taken away from the developer. This allows us to focus on writing and deploying our code. Azure Functions…
-
Even though my purpose is publishing ever green content in this blog, it is not easy to write about such a broader topic. Due to my recent interview process, I have been exposed to this topic since it is being asked again and again. Maybe, I should give the link to this article before the interview and skip to the next question straight away. Anyway, lets dive into the topic. There are certain foundational concepts about software engineering guiding developers in writing efficient, maintainable, and scalable code and the SOLID principles is at the top of the list. The word…
-
Service-Oriented Architecture, often known simply as SOA, can be thought of as a city of services. In this city, each service is like a shop. Every shop provides a unique product or service but doesn’t worry about the other shops around it. Instead, it focuses on doing its own job really well. So, SOA is about creating independent services that work together in a large system. Now, where would you find SOA being used? Imagine big companies with different departments, like finance, human resources, or sales. Each department uses different software. With SOA, these different pieces of software can communicate…
-
I am aware that in our present day world, it is a sin to talk about monolith and not to curse it. However, I am will neither hallelujah nor curse it. I will just try to explain it as an architectural design pattern and try to expose both positive and negative sides of it. The Monolithic architecture stands as a testament to the earlier days of software development. A monolithic architecture is like a single, tightly packed unit where all the software components are bundled together. Think of it as a large factory where every product stage, from raw materials…
-
Event-Driven Architecture is currently enjoying a lot of attention from businesses around the world due to the enhanced capabilities offered by cloud-based systems. Imagine a digital ecosystem like a busy marketplace. In this environment, various systems act as vendors declaring their services and updates. Rather than each customer (or system) having to visit every vendor to check for new items, they simply wait and respond whenever a vendor announces a product they’re interested in. That’s precisely how Event-Driven Architecture operates. Systems no longer continuously scan for updates or changes; they react upon the occurrence of a significant event. For instance,…
-
In this article, we will be talking about Microservices, a design pattern that has gained attraction for its approach to building large and complex software applications. At its core, Microservices is about breaking down an app into smaller parts where each part doing its own job. Instead of one big chunk of software that does everything, you have multiple little services working together. Each microservice is responsible for its own task but collaborating with others to function properly. This approach shines in many situations, especially in cloud-based systems. The cloud is like massive land ready for construction. Microservices allow developers…