Distributed Tracing dengan Jaeger di Go

Distributed tracing digunakan oleh software engineer untuk memonitor atau men-debug aplikasi. Ini sangat berguna untuk menemukan proses mana yang memakan waktu paling banyak, atau fungsi apa yang paling banyak terjadi error. Salah satu system untuk melakukan distributed tracing adalah Jaeger. Artikel ini akan menunjukkan bagaimana menjalankan Jaeger di local environment dan melakukan tracing aplikasi Go. Apa itu distributed tracing? Berdasarkan opentracing.io, distributed tracing adalah metode untuk mem-profile dan memonitor aplikasi, terutama aplikasi-aplikasi yang dibuat menggunakan architecture microservice. [Read More]

Golang Function Timeout Dengan Context

Timeout bisa sangat berguna pada suatu aplikasi. Dia dapat membatasi berapa lama durasi maksimum suatu proses. Kita dapat menghemat resource dengan menghentikan proses ketika waktu timeout sudah terlewati. Pada bahasa pemrograman Go, kita dapat menggunakan context untuk mengatur timeout pada suatu fungsi.

[Read More]

Zero Downtime Reload Menggunakan Socketmaster

Zero downtime reload sudah menjadi keharusan pada kebanyakan sistem, terutama sistem yang diakses user sepanjang waktu. User menginginkan sistem yang memilik high availability. Jadi merupakan hal buruk apabila sistem memerlukan downtime untuk reload walaupun hanya dalam hitungan milisecond. Socketmaster hadir untuk membantu kita membuat sistem dengan zero downtime reload.

[Read More]

Handle Panic di HTTP Server dengan Middleware Go

Kalau kalian pernah coding di Go, kemungkinan besar pernah kena panic. Panic bisa mematikan aplikasi mu kalau tidak di recover. Untungnya di HTTP server bawaan Go sudah ada recovery untuk panic, jadi server tetap bisa berjalan walaupun ada panic. Tapi dari sisi client tidak mendapat response apa-apa kalau server kena panic. Jadi lebih baik kalau kita menggunakan panic recovery kita sendiri yang memberikan response dengan error message ketika ada panic.

[Read More]
go  http 

Menunggu Beberapa Goroutine Selesai Dengan WaitGroup

Goroutine sangat berguna untuk menjalan proses secara asynchronous. Kita juga bisa menggunakan beberapa goroutine untuk menjalankan beberapa proses dalam waktu bersamaan. Tapi bagaimana kalau kita ingin menunggu goroutine tersebut selesai sebelum melanjutkan ke proses berikutnya? Kita dapat menggunakan WaitGroup untuk mengunggu goroutine selesai dijalankan.

[Read More]
go 

Go: Satu Hal Yang Perlu Diketahui Sebelum Menggunakan Defer

Defer adalah salah satu yang menjadi favorit saya di Go. Kita dapat menggunakannya untuk menjalankan suatu operasi sebelum function return. Suatu hal yang sangat berguna. Sepertinya hampir semua programmer Go pernah menggunakan defer di aplikasinya. Tapi ada satu hal yang harus diketahui sebelum menggunakan defer di Go.

[Read More]
go 

NSQ: Requeue vs Requeue Without Backoff

NSQ memungkinkan kita untuk me-requeue message dengan jeda waktu tertentu. Ada dua fungsi yang bisa digunakan, yaitu Requeue dan RequeueWithoutBackoff. Pada artikel ini akan dijelaskan tentang perbedaannya sehingga dapat membantu untuk menentukan yang mana yang lebih cocok dengan use case mu.

[Read More]
nsq  go 

Redis Hash dengan Go Menggunakan HSET, HGET dan HGETALL

Hash adalah salah satu tipe data di Redis. Redis hash merupakan sebuah map yang berisi key-key dengan value nya masing-masing. Ini sangat berguna untuk menyimpan objek. Key dan value disimpan di hash dalam bentuk string, tapi sudah ada beberapa library client yang dapat langsung mengubah nya ke dalam tipe data lain. Pada artikel ini akan dijelaskan cara menggunakan tipe data hash di Redis.

[Read More]
redis  go 

Cara Menggunakan Redis di Golang

Banyak developer menggunakan Redis untuk meng-cache data karena Redis menyimpan data di RAM. Cache di Redis dapat mengurangi beban ke database atau external service. Data yang di simpan di Redis memiliki expire time, sehingga Redis dapat membebaskan memoru yang sudah tidak dipakai. Pada artikel ini akan dijelaskan cara untuk integrasi ke Redis pada bahasa pemrograman Go.

[Read More]
go  redis