I. Why scale? When we talk about system designs. We might talk much about multiple dimensions such as availability, scalability, latency, throughput, performance etc. Scalability sometimes scares us. Why do we have…
Category: Architecture
Rails event-driven with pub/sub
As we know, Ruby on Rails is full stack framework, a monolith application. Good, there is no best architecture, only the “fit for purpose” architecture. We can find many pros and cons…
We use AWS S3 as an event bus
There are many ways to implement event bus using AWS. Whenever we talk about event bus and aws, we remember Eventbridge. That is so true to implement this kind of architecture in…
AWS Lambda CI/CD using Codebuild
Because AWS Lambda belongs to AWS ecosystem so I decided to use CodeBuild. It supports well the service role for authentication. We actually can use other CI/CD such as Github Action Workflows,…...
CI/CD with Jenkins
I choose Ubuntu because we can install it easily with apt. Don’t use Amazon Linux Image because it’s complex, consist of series of steps. I. Install Jenkins To install Jenkins on Ubuntu,…...
Event-Driven Handlers in Rails
Event-Driven Architecture is not new. It is implemented in many big systems such as commercial website, blockchain crypto currency exchange, game development like unreal engine blueprints etc. It solves many problems related…
Restart Puma Server with zero downtime
As a ruby on rails developer, I also think about the performance and availability dimensions of system. We know that the blue green deployment help us this problem. But we don’t really…
Dynamic schedule sidekiq jobs
Simple Scheduler In order to make scheduler in sidekiq, we install this gem. There are type ways of scheduler. We normally configure the fixed schedules in sidekiq.yml. But if we want to…...
Balance between scalability and complexity
Hey guys. This is my perspective based on my engineering experience. I. Start small We start from a scratch, building a totally new project. At this milestone, we face many challenges. We…
AWS step function creates EKS Job
Firstly, why do we have to do this? I’m doing a function which allow users do download a lot of data to excel file. We have an existing backoffice server which handles…