When we building a server application that needs to protect some API resource, usually we only direct implemented simple authentication method. We send user’s credential directly to the server and then server respond with a session or returning a random string (access token) that we save in our database: stating that this {access_token} is owned by this {user_id}. Most often we produce JSON Web Token (JWT) that we don’t save in database, leading a session management issue because we cannot revoke specific JWT before it expired.

Above approach may fits in common use case, but it has pros and cons.

Past week I got questioned again about Jaeger — an end to end distributed tracing. That question come from my workmates that they’re in doubt whether the Jaeger can be single point of failure. Though this post will not answer that case explicitly, but it will give a new perspective about how Jaeger should be properly deployed in production (both for me and for you — the readers).

First time when I get my hand dirty with the so called things as “distributed tracing”, I always use Jaeger all-in-one docker image which just works. At that time I don’t think…

Well, you may heard a lot about “distributed system” or “distributed database” itself. But, you may wonder how to create it or the internal behind it. In this post, I will try to explain how to create one of it using Raft consensus. This post more discussed about how to code and test the Raft cluster rather than discussing the internal Raft.

What is Raft Consensus?

When it comes to distributed system, we need a consensus to agree on some values. Since servers are located in different place it is hard to maintain the agreement. Imagine that you and your workmates want to make…

I’ve been more than 3 years in programming and building many applications from simple website to an API that needs to scale. Whether it hobby project or work related job, since choosing title “back-end developer” as the first career, I’m aware that building a good back-end is not easy as what I’ve imagine. One challenges that comes into my work is how could I well-knowing about the system that I face every day?

Believe me, you will never know your Software well!

Have you think that you are deeply known of your software that you’ve created like you think that it’s the part of yours? Until it came into…

Image for post
Image for post
Go and Apache Kafka official logo

This is my experience in these past two weeks while I get my hand dirty in Apache Kafka. Even I was introduced with Kafka by my CTO several months ago, but I still have some problems about how to produce and consume a data to Kafka and just have a spare time to take a look at it again. The harder part that I’ve encountered was when I try to setup Kafka cluster running using docker. While there are some open-source docker images out there, but they just give an example to running Kafka in single node.

In this post…

I have tried coding in JavaScript using different standard, start from ES5 to ES6. My impression was gained when I tried some simple code using ES6. Why? Because in ES6 I can declare class, even I know that when it translated to ES5 it just a variable which return a function.

For example:

class MyClass {

greeting(name) {
return "Hello " + name;


Which later will be translated to ES5 as below:

"use strict";function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }var MyClass = function…

This is my first post in medium since I registered one year ago. I write this because I’m triggered by my friend’s post at my Facebook news feed. He wrote some tutorial about Data Science, and another one wrote about Deep Learning. But that’s not only my reason. Another reason is I must learn to write English in correct grammar (so please correct my grammar if I’m write some mistake) and I must push myself to do it. (And if you are still asking another “why” question, then this post doesn’t answer all of your “kepo” behavior).


The Doraemon’s opening…

Yusuf Syaifudin

Yogyakarta — Indonesia

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store