Storage is an essential component of any architecture. Storage is necessary because it is responsible for storing valuable data produced by the applications. Whether you are an architect or an application developer, you need to understand various storage options, their differences, and the applicable use cases. Knowing this will help you choose the right storage solution for your application and avoid any headaches down the road.

This blog will talk about different storage options and the portfolio of equivalent storage services offered by AWS. I will also discuss use cases that each solution supports.

Choice of storage option is influenced…


Before the internet, computers were being used for limited use cases. The dawn of the internet allowed multiple computers to exchange data in a meaningful way, providing the capability to solve many more interesting problems.

Based on this premise, various distributed applications have developed ever since. These applications need to run 24/7 to provide services to their users. Data centers are facilities that provide a structure to host computer servers connected to the internet. These applications are then installed on the servers to serve user requests.

Setting up the proper environment in these data centers required lots of effort and…


A fundamental characteristic that differentiates a leader from a follower is
that leaders are visionary.

Leaders bring something new, a new business idea, a new product, a new engineering design, or a new way to think about something existing. These new ideas may often challenge the status quo of something that is widely accepted and disrupt it.

Our vision inspires us to do what we do. Kids go to school with a vision to pass the class with good grades. Business owners run their businesses with a vision to make it profitable. Engineers have the vision to build a perfect…


Intro:

Every one of us desires to achieve something big in life and to be in a leadership position. Motivated by the same desire, I have always been thinking about doing something to help, motivate, inspire, not just myself but also people around me. After spending over 18 years working in corporate culture, I realized that the corporate cultures have designed a system to promote a rat race among workers.

Employees are judged by what they have achieved and then rewarded based on specific performance metrics. This makes the culture based on manipulations in which coworkers work together on a particular…


As architects and engineers, we are constantly challenged to build better software. The drawbacks of traditional architecture mentioned in Part1 of this blog series can be avoided by adopting different domain modeling techniques. We can build one such architecture by fusing Event Sourcing and CQRS technologies together.

Event Sourcing:


Event sourcing and CQRS: Match Made In Heaven — Part1

Software engineering is relatively new. Over the past few decades, engineers are pushing its limits by building more sophisticated, more reliable, and more scalable applications to fulfill the ever-increasing demands of the twenty-first century. Users have gone tech-savvy, and the amount of data we are producing these days is unbelievable. The way we build software to manage such demands in terms of reliability, security, and scalability have radically changed.

Traditionally software applications were developed using the CRUD style persistence model, mostly storing data in a Relational Database (RDBMS). This application…


Are you a developer? Do you write automated tests? Are you refactoring your monolith to microservices? Or perhaps building a greenfield microservices app? Are you overwhelmed by the complexity of your microservices infrastructure and not sure how to tame it? If the answer to any of these questions is YES, then this blog post is for you.

My stars aligned with software development more than 15 years ago. Ever since, my world has been revolving around taming the complexity of software systems, and I hope to share it with you in this blog post. There is one thing I learned…


I would like to set the stage for this article with a meaningful phrase

Microservice architecture is not a swiss army knife

Understanding this phrase will make us ready to dive into the world of Microservices and discover its advantages as well as drawbacks. This phrase will help us perceive if Microservices Architecture is the right choice for our next project.

Microservices architecture is a way of architecting software applications involving multiple self-contained services. Each service provides specific business functionality and follows its own development and deployment cycle. This is synonymous to the Lego bricks which can be connected to…


Blockchain:

Blockchain has proven to be an undeniably fascinating electronic ledger. It helps in making sure processes, procedures, interactions, governance, and currency are streamlined without the need for an intermediary (middle man or agent of any kind). Despite the ingeniousness of this invention, it is still fairly unknown to the average person around the globe.

Throughout this series, I will touch on the most essential concepts of the blockchain, cryptocurrencies, and smart contracts without diving too deep as this will enable the average person to understand the entire concept better. …


The title of this article is a bit of an exaggeration. Monoliths are evil and not so evil at the same time. How is that possible? Let's find out.

Every application starts simple, so monolith architecture is the right choice. When the project starts there is often very little information available, so the project should always start with the most straightforward approach. However, one thing to keep in mind is that the project is bound to grow with the introduction of more features. Therefore, the projects need to be architected with the ultimate goal of Microservices in mind.

Modular architecture…

Muhammad S Tahir

Learn -> Apply -> Share

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store