ARTICLES

Designing a COGS System That Handles Offline POS Sync Without Going Negative

Offline-capable POS sounds great until thousands of transactions sync simultaneously and your stock goes negative. Here's how we redesigned COGS calculation to handle it correctly.

17 April 2025

GoMySQLPerformanceDatabaseBackendArchitecture

How We Migrated a Monolith to Microservices in Go — Including Splitting the Database

Separating services is only half the work. The harder part is splitting the database, migrating the data, and managing feature flags that gate both code changes and data changes simultaneously.

3 April 2025

GoMicroservicesArchitecturePHPGCPMySQLBackend

Why We Chose Kafka Over RabbitMQ to Solve an Offline POS Race Condition

When thousands of offline POS devices come back online simultaneously and flood your API, you need more than a queue. Here's why we landed on Kafka after trying RabbitMQ and Redis Pub/Sub.

20 March 2025

GoKafkaEvent-DrivenMicroservicesBackend