System-Design

Software Architecture: Monolith, Microservices and the Distributed Monolith Trap

Software Architecture: Monolith, Microservices and the Distributed Monolith Trap

Many young Backend programmers tend to view software architecture models as a religion or a measure of skill. Microservices are often revered as the pinnacle of technology, Monolith is labeled as outdated, while Distributed Monolith - the worst state - is often mistaken for real microservices.

Read More
Agent = Model + Harness: Do not put an F1 engine into a brakeless bus

Agent = Model + Harness: Do not put an F1 engine into a brakeless bus

At the end of last year, I created a bot that ran in the background to automatically read menus from partner restaurants sent in PDF/Excel format, then parsed them into a Go struct to load into the Menu Service database.

Read More
When to use cache and when not to

When to use cache and when not to

There is a production bug that I still remember vividly: user A cancels an order, but the app still displays “delivering” for the next 10 minutes. Support receives 30 tickets in one morning. The reason: cache TTL is 10 minutes, but no one invalidates it when the order status changes.

Read More