Week 3: A Shift in Perspective
Quick Snapshot
- Learned from Gaurav Sen's system design series
- Started redesigning my Vimist POS + Inventory system
- Focus: consistency, transactional integrity, scalability
- Tech: Django, MySQL, Docker, REST APIs, RBAC
- LLD in progress, HLD shaping up
Two weeks ago, I started blogging. I had no clear direction — just a deep desire to share. That led to my first post: I Almost Didn’t Write This.
By week two, I had dived into Docker and system design, writing about scaling, security, and why DevSecOps matters.
This Week: System Design Hit Me Hard
After bingeing Gaurav Sen's system design breakdowns (Tinder, WhatsApp, Instagram), I saw things differently.
It made me look at my own project — Vimist, a POS and Inventory app — and realize:
It could be better.
So I paused building... and started redesigning.
Core Requirements I Mapped Out
- Inventory management
- Purchases (what, where, who, how paid)
- Sales (to whom, by whom, payment method)
- Credit tracking w/ limits & repayments
- Notifications: low stock, overdue payments
- Payment types: cash, mobile money, credit
- Business branding: themes, logos, company details
Tradeoffs and Decisions
Consistency is a must — money’s involved.
That left me debating between:
- Availability
- Partition tolerance
Still undecided. Any thoughts?
Share down in the comments.
Stack I Chose
- 🧱 REST APIs for simplicity
- 🐬 MySQL for strong ACID guarantees
- 🐳 Docker to scale across systems
- 🔐 RBAC via Django (middleware + signals)
Currently working on the LLD (schema, services). HLD coming together too. -- coming soon
Closing Thoughts
This journey isn’t fast — but it’s moving.
And that’s what matters.
Sometimes, slow forward beats a backward step.
If you’re building anything similar or have thoughts on consistency vs Partition Tolerance, hit me up in the comments.
See you in Week 4.
- vn-vision
Top comments (0)