Golang tutorial Part -1 Installation and Basics

What is Golang Go also known as Golang is an open source, compiled and statically typed programming language created by Google. The primary focus of Golang is to make the development of highly available and scalable web apps simple and easy. Why Golang Why would you choose Golang as your service side programming language when there are tonnes

Docker Cheatsheet

Most common Docker commands in the nutshell. 1. To list all running containers $ docker ps -a  2. To view all running containers IDs $ docker ps -aq 3. Pull image using image name $ docker pull <image_name> 4. To start a container $ docker run <image_name> The above command will start a container for that image and

Postgres sql database cheatsheet

In this post, I am installing postgres on ubuntu and then will perform different sql operations on it. Installation commands may vary with other distributions like CentOS or Mac. To install: [crayon-5cba66d0593bd670585227/] This will also install other dependencies. To connect to Postgres: [crayon-5cba66d0593d1039653910/] To check the login info, use the following command [crayon-5cba66d0593da109034399/] By default, PostgreSQL will

Strong Consistency Models and HTTP

In a wonderfully-written article, Kyle Kingsbury explores different models of strong consistency and I thought it would be interesting to consider how to apply some of these concepts in the context of the HTTP protocol given the prevalence of web APIs in modern architectures. HTTP is an amazingly expressive protocol, especially for caching semantics, yet in my experience

Zombie vs Orphan process

When a process terminates, its resources are deallocated by the operating system. However, its entry in the process table must remain there until the parent calls wait(), because the process table contains the process’s exit status. A process that has terminated, but whose parent has not yet called wait(), is known as a zombie process. All

Protocol fundamentals

Source: OSI 7 layer model Hypertext transfer protocol (HTTP) HTTP is a method for encoding and transporting data between a client and a server. It is a request/response protocol: clients issue requests and servers issue responses with relevant content and completion status info about the request. HTTP is self-contained, allowing requests and responses to flow

Asynchronism

Source: Intro to architecting systems for scale Asynchronous workflows help reduce request times for expensive operations that would otherwise be performed in-line. They can also help by doing time-consuming work in advance, such as periodic aggregation of data. Message queues Message queues receive, hold, and deliver messages. If an operation is too slow to perform

Caching Fundamentals

Cache Source: Scalable system design patterns Caching improves page load times and can reduce the load on your servers and databases. In this model, the dispatcher will first lookup if the request has been made before and try to find the previous result to return, in order to save the actual execution. Databases often benefit