Reactive Manifesto

Reactive Manifesto

The Reactive Manifesto describes how to design and architect Reactive systems according to your needs.Systems built as Reactive Systems are more Reliable, flexible, loosely coupled, scalable and resilient. This makes them easier to develop and amenable to change. Reactive systems are more tolerant of failure and when failure does occur, they meet it with elegance rather than disaster.

September 9, 2018 · (updated December 5, 2023) · 6 min · Pradeep Loganathan

Non Static class with Static methods Vs Static class

During a design session a few folks in my team had questions on using a static class vs a class with static methods. We hit upon this when designing utility classes and extension methods.During the course of this discussion some of us were surprised about what I felt was basic knowledge and I was also caught out on a few which led me to documenting this down below. Static Class Marking a class as static means that a compile time check will be conducted to ensure that all members of the class are static....

October 25, 2017 · (updated January 16, 2022) · 2 min · Pradeep Loganathan
Consensus Algorithms

Consensus algorithms

Consensus is one of the most important and fundamental problems in distributed computing. Simply put, the goal of consensus is to get several nodes to agree on something. It is a distributed computing concept that is used to provide a means of agreeing to a single version of truth by all peers on the distributed network.

July 12, 2017 · (updated February 5, 2024) · 9 min · Pradeep Loganathan

Merkle Trees

A Merkle tree, named for its inventor, Ralph Merkle, is also known as a “hash tree". It’s a data structure represented as a binary tree, and it’s useful because it summarizes in short form the data in a larger data set. In a hash tree, the leaves are the data blocks (typically files on a filesystem) to be summarized. Every parent node in the tree is a hash of its direct child node, which tightly compacts the summary....

July 12, 2017 · (updated January 16, 2022) · 3 min · Pradeep Loganathan
Hexagonal architectures

Hexagonal Architectures

Hexagonal architecture aims to decouple business logic from other parts of the component, especially the persistence, eventing and services layers. A component, built on the ports and adapters pattern, exposes a set of ports to which one or more adapters can be added as necessary.

July 10, 2017 · (updated February 2, 2024) · 4 min · Pradeep Loganathan

Handling common input validation - Guard.cs

A fairly simple but common task across all application code that I have written is simple validation of parameters and inputs. Everybody has thier own way of handling this and here is mine. Can I do it better? You Bet. View this gist on GitHub

October 25, 2016 · (updated January 16, 2022) · 1 min · Pradeep Loganathan
Representational State Transfer - REST

Demystifying REST: How API-First Design is Redefining Web Interactions

Rest is a client server communication model which is stateless, resource based, and Idempotent.

September 18, 2016 · (updated February 9, 2024) · 8 min · Pradeep Loganathan