The Concept of Stateful and Stateless Applications

We often hear the terms "stateful" and "stateless". Understanding these concepts has a critical importance since it is one of the most essential questions when designing and architecting software applications. In today's blog post, I wanted to talk about these two very basic concepts. As the simplest definition, stateful application means an application which remembers the past, similarly, stateless application means an application which doesn't remember the past. The state we have been talking about might be saved in a database, a file on the disk, a cookie in a browser etc. As an example, consider an e-commerce website. When…

Read More

Remote Caching in Scaled-Out Cloud Applications: A Case Study with Redis, C# and Python

A few weeks ago, we were discussing a problem with my team mates and a colleague raised a question about a very basic distributed remote caching problem which was about an application scaled out across multiple instances, managing how data is cached can become a significant challenge. Let me take the shortcut and directly jump into the problem. Consider a scenario where you have multiple instances doing the same job and you need to cache the result of a function which takes about 30 seconds. This function's result needs to be cached to avoid redundant executions across different instances. The…

Read More

On Azure Functions and Serverless

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…

Read More