Skip to main content

"Dushnylo" Series: Monolith First approach.

I keep hearing, “You MUST start with a monolith.” Every new project? Always?

When I hear that, two thoughts immediately come to mind:
    1️⃣ “It depends.” You can’t just blindly say every project must start as a monolith.
    2️⃣ My inner Dushnylo whispers: “Time to make a post about this.”

So, here’s my take: I disagree. Not only do I disagree, but I believe the most critical and dangerous part of system design is analyzing and understanding business needs before making architectural decisions.

Why? Simple. Imagine you’re building a streaming platform that processes massive amounts of data, handles notifications, and integrates with third-party services. Does this sound like something you’d build as a pure monolith? Of course not. But I do agree on one thing—you have to start somewhere.

That starting point could be a simple core application—yes, it might look like a monolith at first. But you’re not designing the entire system as a monolith. Instead, you’re building additional components around the core to meet business needs.

So why do people insist on “monolith first”? Because too often, engineers rush into microservices without understanding how their system should work. They waste time crafting dozens of services, struggling with communication between them, dealing with data transfer headaches—all because they skipped the analysis phase. They don’t know what they actually need to build and just follow trends instead of using their brain.

You might say, “But isn’t that the same as saying start with a monolith?” No. I’m saying:
    ✅ Start by thinking.
    ✅ Analyze what needs to be done.
    ✅ Design the system based on business needs.
    ✅ Begin development in the simplest way possible—by crafting the core instead of rushing to build infrastructure around nothing.

Monolith or not, architecture isn’t about dogma. It’s about making the right decisions at the right time.



 

Comments

Popular posts from this blog

Coinbase x402 is great option for paymant per request!

  🚀 What is Coinbase x402? x402 is a new open payment protocol built by Coinbase that revives the long-forgotten HTTP 402 “Payment Required” status and turns it into a modern, internet-native payment layer . Using stablecoins (such as USDC ) directly over HTTP, x402 allows services: APIs, websites, or digital content platforms to charge per request. At the same time,  clients (including AI agents and automated systems ) can pay programmatically , without accounts, subscriptions, or human interaction. In simple terms: request → pay → get response , all at the protocol level. How It Works (Simplified) A client requests a protected resource (API, data, article, service). The server responds with HTTP 402 Payment Required , including payment instructions. The client (app or AI agent) generates a payment transaction using its wallet. The client resends the request with payment details included in HTTP headers. The server verifies the payment and immediately ret...

Microsoft Azure Well-Architected Framework - Maturity models

The Azure Well-Architected Framework has always been a great way to assess and review workloads. But with the recent updates—especially the introduction of maturity levels —it’s becoming much more than just a checklist. 💡 It’s evolving into a concept. Not only can teams review their architecture, but they can now score, track progress, and continuously improve . The maturity model provides clear stages—from establishing a solid foundation to achieving future-proof agility—making it easier to understand where you are today and where you should aim tomorrow. Why is this important? ✅ It transforms reviews into a roadmap for growth ✅ It allows measurable scoring of architecture maturity ✅ It pushes teams to focus not only on compliance, but also on resilience, agility, and future-readiness Each update makes the Azure Well-Architected Framework better and stronger —helping organizations align technology decisions with long-term business success. 👉 In my view, this is the right dire...

Hints and Hacks: Mastering Go Project Structure and Generic Repositories with GORM

  Mastering Go Project Structure and Generic Repositories with GORM Establishing a robust project structure is paramount when building scalable and maintainable Go applications. Coupled with the flexibility of a generic repository, this approach ensures clean, reusable, and extendable code. In this article, we'll explore how to set up a well-structured Go project and implement a generic repository pattern with GORM, focusing on practical examples and best practices. Why Project Structure Matters A well-organized project structure is critical for: Scalability : Adding new features or components becomes seamless. Readability : Developers can easily navigate the codebase. Maintainability : Issues can be identified and resolved efficiently. Adhering to a modular structure, your application remains clean and manageable as it grows. Recommended Go Project Structure Here is a typical project layout for a Go application leveraging GORM and a generic repository: app_db_generic...