Introduction To RabbitMQ

Introduction To RabbitMQ

Overview In the micro-service world, we often heard about Event Driven Architecture (EDA) which uses events to communicate between services. A publisher publishes events without caring who will consume the events, this async communication (background operations) makes it decoupled between components. Reducing latency is one of its benefits. There are some famous tools that implement Event Driven Architecture, ie: Kafka, NSQ, Amazon SQS, GCP Pub Sub, RabbitMQ, and soon. In this article, I want to talk a bit about RabbitMQ….

Read More Read More

Playing with VPC AWS (Part 2): Key Pair and Instance

Playing with VPC AWS (Part 2): Key Pair and Instance

In previous article we discuss about how to create VPC, subnet, Internet gateway, route tables, NAT device, and security group. In this session I would like to discuss about how to create instance in AWS and connecting all of the stuff that we created. I strongly suggest to read Playing with VPC AWS (Part 1) if you want to follow this tutorial. Use Case In order to refresh our mind, let’s take a look the use case that we want…

Read More Read More

Playing with VPC AWS (Part 1): VPC, Subnet, Internet Gateway, Route Table, NAT, and Security Group

Playing with VPC AWS (Part 1): VPC, Subnet, Internet Gateway, Route Table, NAT, and Security Group

Nowadays, most applications are running in the cloud. A middle or enterprise organizations continue developing cloud-based software to run their business. There are many benefits that we can get by using VPC, including easy collaborations, improved productivity, and cost saving. In this post, we are going to discuss about VPC. Since it contains long article, I divide it into two parts. In Part 1, we discuss about definition of VPC, it’s usage, differences between shared hosting and VPS, configuring VPC….

Read More Read More

Basic Concept of ElasticSearch (Part 3): Translog, Flush, and Refresh

Basic Concept of ElasticSearch (Part 3): Translog, Flush, and Refresh

In previous article, Basic Concept of ElasticSearch (Part 2): Architectural Perspective, I have present about elasticsearch from architectural perspective, starting from elasticsearch role node, indexing flow, and searching flow. But, if you are not familiar with ElasticSearch, I suggest to read Basic Concept of ElasticSearch (Part 1): Introduction first. As I mention in the previous article, ElasticSearch generally consist of two phase, indexing and searching. Indexing is a phase for populating ElasticSearch docs, while searching is a phase for searching…

Read More Read More

Basic Concept of ElasticSearch (Part 2): Architectural Perspective

Basic Concept of ElasticSearch (Part 2): Architectural Perspective

In previous article Basic Concept of ElasticSearch (PART 1), I have present about definition of ElasticSearch, comparison between ElasticSearch and SQL, some terminologies in ElasticSearch, relation between ElasticSearch & Lucene, and also data types in ElasticSearch. In this article, I will tell you about a brief of architectural perspective of ElasticSearch, general indexing flow, and general searching flow. ElasticSearch Node As I mention in Part I, ElasticSearch have ability to manage inverted index in distributed way. So we can have more…

Read More Read More

Basic Concept of ElasticSearch (Part 1): Introduction

Basic Concept of ElasticSearch (Part 1): Introduction

Elasticsearch is a text search engine based on Lucene. Basically Lucene is a plugin written 100% in Java that have powerfull capability to search text with extremely fast. ElasticSearch wraps it so that we can utilize it over HTTP call with JSON interface. Besides that, it has ability to distribute documents across multiple shards in a cluster. Instead of search text directly, ElasticSearch converts it into an index that contains terms frequency and also its location. In this article, I…

Read More Read More

Lua Script in Redis for Supporting Inventory Management System

Lua Script in Redis for Supporting Inventory Management System

Important Aspects In Inventory Management System Inventory management system is a system to determine stock inventory at a certain time. Inventory management is one of the basic problems in almost every company. There are some aspects that needs to considered in inventory management system: Stock control reduce stock when there is any claim request restock when there is any declaim request or rollback Security only legitimate user that able to update the stock request should be idempotent, no claim/declaim operation are…

Read More Read More

Golang: Benchmarking and Optimizing Code

Golang: Benchmarking and Optimizing Code

I have been working with Golang since 3 years ago, I love it because of its performance and lightweight. Golang also has good built-in tools that absolutely help you in development. One of that is pprof, a tools for profiling data and visualize it. By analyzing profiling data from pprof, we will able to identify which part that consume lots of memory and time. Awesome right!!! In my previous company 2018, I was facing an OOM issue after using a 3rd party package in…

Read More Read More