Distributed caching to improve system performance
Caching is a commonly used technique to improve system performance by storing frequently used data or files in memory or local file system to avoid roundtrip over the network. More…
Azure service bus queues and topics
Service bus queues and topics are the essential building blocks for building scalable distributed systems. The following diagram shows the differences between the two.
Updating read data stores in CQRS
In a typical CQRS setting, there are one write data store and one or more read data stores. As shown in the diagram below, when a user updates data via…
Scalable machine learning architecture
The conceptual diagram of scalable machine learning architecture.
Dependency inversion using Ports and Adapters architecture
Over time core business logic of an application becomes tightly coupled with various libraries, frameworks and technologies making it harder to evolve and test. It becomes challenging for long lasting…
Software architecture reading list
This is a minimalist software architecture reading list based on my current work context. Last updated on 5th August 2018. This list is deliberately kept short in the spirit of…
Core ngrx concepts in an Angular app
There are only a few key nrgx concepts that are essential to understand the architecture of an ngrx based applications: store, state, reducers, effects, action, dispatch, subscribe, and one directional…
Ten basic AngularJS concepts for beginners
This code snippet introduces 10 basic AngularJS concepts for beginners by building a very simple application. The application enables users to maintain a to do list with basic add, edit,…
An application framework based on ASP.NET MVC
I attempted to create a tag cloud diagram based on the concepts and technologies my current software development team is using.
How TDD and BDD complement each other?
Test Driven Development (TDD) and Behaviour Driven Development (BDD) are the most widely used technical practices in agile software development. These two automated testing approaches are not alternative to each…
WeatherTreand – a hybrid mobile app
This Android app was developed as an example to show how hybrid apps can be developed using web technologies. The app was developed using HTML5 and various Java Script libraries…
What is a hybrid mobile app?
Hybrid is an app development approach where only a bare minimum shell of the app is developed using native programming language and most of the app logic is implemented using…
Data visualisation in HTML5
The availability of canvas in HTML5 enabled the development of visualisation libraries for rendering charts/graphs in native html without any plug-in dependencies (e.g., Flash, Silverlight, Java Applet etc.). Among the…