Manabie Tech Blog

Sharing the humble technical knowledge we’re using to improve education

J4 stress test framework

Why stress test At Manabie, we have already implemented bunch of features for the business, mostly to support ERP in education domain. The traffic on production is not that high. For each cluster (of each clients), it barely reaches 100 rpc on our Grafana dashboard, and everything looks safe. But no, we realize that in our roadmap, we have a plan to merge all the cluster into a multi-tenant cluster. We don’t know if the cluster merge will affect some resources, maybe there are extensively used features that we will not be aware of (features team are rapidly adding more APIs, as the business grows) and we may encouter performance issues unprepared. Read more →

Set up NATS multi-tenant in golang

In this blog post, we will learn how to set up NATS Multi-tenancy in golang. NATS-Jetstream NATS has a built-in distributed persistence system called Jetstream which features new functionalities and higher qualities of service on top of the base Core NATS functionalities and qualities of service. Jetstream was created to solve the problems identified with streaming technologies today. Some technologies address these better than others, but no current streaming technology is truly multi-tenant, horizontally scalable,… Today I just talk how we can set up NATS multi-tenancy in golang. Read more →

Test Coverage of Go Services during Integration Tests

Test Coverage of Go Services during Integration Tests In Golang, getting code coverage with go test is easy. But it’s still rather hard for integration tests. Here I want to introduce the method we used at Manabie to measure the code covered by our integration tests across many microservices. About our integration tests At Manabie we use Kubernetes for container orchestration. To perform integration tests, we deploy our services, and then run a test container with a go program with a whole lot of integration tests. Read more →