Categories
Programming Software Architecture

What distinguishes MVC, MVP, MVVM, MVVM-C, and VIPER 5 architecture patterns from each other?

These architecture patterns are among the most commonly used in app development, whether on iOS or Android platforms. Developers have introduced them to overcome the limitations of earlier patterns. So, how do they differ? MVC, the oldest pattern, dates back almost 50 years Every pattern has a “view” (V) responsible for displaying content and receiving […]

Categories
Agile Development Programming Software Architecture

The 8 Levels of Code Review Pyramid : One Diagram to Remember for Code Reviews

An essential step in the software development lifecycle is code review. Code reviews are powerful means to improve code quality, establish best practices, opportunity to learn, and knowledge sharing and mentoring, as well as promotes team cohesion. What to look for in a code review? Try to look for things such as 𝗱𝗲𝘀𝗶𝗴𝗻 (does this […]

Categories
Programming Software Architecture

How Git commands work?

Almost every software engineer has used Git before, but only a handful know how it works 🙂 To begin with, it’s essential to identify where our code is stored. The common assumption is that there are only two locations – one on a remote server like Github and the other on our local machine. However, […]

Categories
IT Books Software Architecture

How to Scale your Application from ZERO to Millions users?

Designing an application to cater larger audience is an evolutionary journey. Let’s start this voyage together. We’ll begin with a Single user system and gradually evolve to million users. Single Server setup Single server setup 1. User access website through Domain name (i.e. www.example.com) 2. DNS returns the IP address to the browser 3. Browser […]

Categories
Programming Software Architecture

From 0 to Millions: A Guide to Scaling Your App

In this article, we’ll discuss a typical architectural evolution of a website/app, and how/why we make technical choices at different stages to Scaling Your App from 0 to Millions. Do we build a monolithic application at the beginning? When do we add a cache? When do we add a full-text search engine? Why do we […]

Categories
Software Architecture

What are the top 6 API architectural styles?

The diagram below shows the common API architectural styles in one picture. 🔹 1. REST Proposed in 2000, REST is the most used style. It is often used between front-end clients and back-end services. It is compliant with 6 architectural constraints. The payload format can be JSON, XML, HTML, or plain text. 🔹 2. GraphQL […]

Categories
Software Architecture

What are the 6 common load-balancing algorithms?

6 Common load-balancing algorithms The diagram below shows 6 common load-balancing algorithms. Static Algorithms Round robin The client requests are sent to different service instances in sequential order. The services are usually required to be stateless. Sticky round-robin This is an improvement of the round-robin algorithm. If Alice’s first request goes to service A, the […]

Categories
Agile Development DevOps/SRE Software Architecture

Azure for Architects

Check this free eBook, provided free by Microsoft! [eBook] Azure for Architects https://bit.ly/3E2xQOV Get expert guidance for cloud, serverless, and data analytics design Base your cloud solutions on strategy and architecture that meet the needs of your organization. In the Azure for Architects e-book from Packt Publishing, you’ll find guidance for everything from understanding core […]

Categories
Software Architecture

𝗗𝗶𝗳𝗳𝗲𝗿𝗲𝗻𝗰𝗲 𝗯𝗲𝘁𝘄𝗲𝗲𝗻 𝗮𝗻 𝗔𝗣𝗜 𝗚𝗮𝘁𝗲𝘄𝗮𝘆 𝗮𝗻𝗱 𝗮 𝗟𝗼𝗮𝗱 𝗕𝗮𝗹𝗮𝗻𝗰𝗲𝗿

An API gateway is focused on 𝗿𝗼𝘂𝘁𝗶𝗻𝗴 requests to the appropriate microservice, while a load balancer is focused on 𝗱𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗶𝗻𝗴 requests evenly across a group of backend servers. An API gateway and a load balancer are both types of infrastructure that can be used in a computer network to manage incoming requests and enhance the […]

Categories
Software Architecture

System Design Interview: The step-by-step guide

Here is a simple but powerful, step-by-step framework we put together to help you crack system design interviews. The Framework: Step 1 – Understand the problem and establish the design scope Step 2 – Propose high-level design and get buy-in Step 3 – Design deep dive Step 4 – Wrap up In this 10 minutes […]