-
How To Think Like A Software Architect (Without Being One)
You don’t need to be an architect to think like one – and doing so makes you a better developer, produces more effective systems, and accelerates your career. Architectural thinking is a learnable skill composed of three competencies: translating business drivers into architecture characteristics, expanding your technical breadth, and rigorously analyzing trade-offs. Mastering these three…
-
Improving Query Performance via PostgreSQL Table Partitioning – Part II
Welcome to Part II series of exploring postgresql partitioning. If you haven’t already checked out Part I, it has some pre-requisite information. This helps you find out if partitioning is the right solution for you, as it did for me. Table of Contents Key Information To Know Before Starting Partitioned Table Characteristics timestamp. Example ‘2025-05-05…
-
Improving Query Performance via PostgreSQL Table Partitioning – Part I
Intro: At work I created a new set of tables to fulfill the business needs. Unfortunately for the first time around, I couldn’t set aside the time consider maintenance of the tables as it was premature to even consider if the business idea would be successful. So, I decided to work on it another time.…
-
Rendezvous Hashing – alternative to Consistent Hashing
While its counter part “Consistent Hashing” first appeared on a May 1997 paper and is considered to be a conventional wisdom to use today Rendezvous hashing was created just one year earlier in the paper in 1996. Works well for load balancers, caches, and cdns mainly to distribute loads randomly when new servers are added…
-
What is Consistent Hashing?
For horizontal scaling solutions, data are spread across many different servers vs in vertical scaling solutions, the data is stored in one big server. Horizontal scaling requires a way to identify where the data can be stored and then searched after it is stored. fn(key) mod N – where “key” is the data key name…
-
Why Pinterest Moved to HTTP/3?
About a month ago (Feb 24, 2023), Pinterest published a blog that they moved to HTTP/3 HTTP/3 will help in cases of large payload transmissions such as image/video downloading. (No HOL in HTTP/3) Connection Migration across IP address, such as mobile use cases. (No Handshakes in HTTP/3) Congested network or limited bandwidth. (Less RTT in…
-
Raft – the most popular distributed database consensus algorithm
etcd CockroachDB TiKV InFluxDB Consul HashiCorp Kafka Dgraph It may be worthwhile to look into Raft as some of these databases are able to claim fault tolerance, high availability due to using Raft. It is also worthwhile to see the short comings of Raft as the system can go into error state if there are…
-
Monoliths to Microservices @ Khan Academy
Khan Academy is a US Based non profit education provider that teaches math, art, software engineering for free – similar to Coursera. It is aimed towards middle school and high school students. It started as a Monolith written in Python2. In 2019, Python Software Foundation announced EOL of Python2 in 2020. The whole company faced…
-
Do I Need Kubernetes?
Intro k(8)s – k(ubernete)s – 8 letters – A cluster management software that handles deployment of softwares with a lot of built in features Started as a project called Borg by Google 2003-2004, then open sourced it and called k8s. scalability fault tolerance high availability/self healing/rollbacks microservice oriented architectures disaster recoveries (GKE version 1.24+ container…
-
Data Mesh @ Netflix
Data Mesh platform – an in-house built solution for handling Change Data Capture design patterns for processing data from a source to a target Seems to be a real time type of processing job in comparison batch job compared to Hadoop Hive or Spark which achieves similar use cases related to ETL pipelines. However the…