Microservices won’t fix bad design—they’ll amplify it. Splitting a monolith into microservices doesn’t magically solve scaling issues. It introduces network latency, data consistency challenges, and operational complexity. Before going micro, ask: • Does each service have a clear, single responsibility? • How will services communicate—sync or async? • Can failures be isolated without breaking the whole system? • Have we properly defined bounded contexts? • Who will be the owner of that new service? • Is the team structured for microservices, or will this cause silos and slowdowns? • Can you afford it? Microservices work best when your architecture demands it, not when hype drives it. Choose wisely.
Microservices boundaries and monolith trade-offs
Explore top LinkedIn content from expert professionals.
-
-
What do Facebook, Uber, Airbnb, Stripe, Twitter, Shopify, Slack, and PayPal have in common? They all started as monoliths and relied heavily on monoliths for years after becoming unicorns. Do you actually have enough load on the system such that you need to scale the users service independently from the orders service? Can you not fit tens of millions of users, payments, products and orders in the same database cluster? Is your team so large that development velocity is an issue and you need seperately deployable services even when there’s no load scaling benefit just to alleviate operational scaling issues? The biggest benefit of a monolith is dead simple transactions. If your app does things like charging cards, updating inventory, or reserving cars/rooms, those actions need to succeed or fail all together. In a monolith, that’s easy: wrap them in a single database transaction. With microservices, you need distributed transactions or eventual consistency 💀. A saga pattern to coordinate failures and rollbacks across a chain of services. This is error prone, expensive infra, runs slower and takes months longer to develop/test. It also requires way more maintenance as the system evolves. It limits your velocity when introducing new concepts and flows which startups often need to do quickly. Start with a monolith. Get speed and correctness by default. For special needs like real-time streams or heavy compute loads, you can justify adding another service if it actually needs different composition of CPU, memory or storage that can scale independently from everything else. Each microservice is supposed to exist to solve a specific scaling or operational pain point. Let the real bottlenecks shape your architecture.
-
Monolith vs Microservices explained without any tech jargon. It's the clearest explanation you'll find for non-technical PMs 👇 Think of your software like a home: Monolith = Studio apartment • Everything in one open space • Kitchen, bedroom, living room all connected • One heating/cooling system • Easy to clean and maintain • But limited flexibility to modify Microservices = Large house with specialised rooms • Each room has a specific purpose • Separate systems for each room • Can renovate bathroom without affecting kitchen • Different family members can use rooms independently • Rooms communicate through hallways Why this matters for your project: Monolith: ❌ Changes are risky - one bug can crash everything ❌ Releases take longer - need to test the whole system ❌ Scaling is all-or-nothing - can't boost just one feature ❌ Team conflicts - everyone works in the same codebase ❌ Tech debt grows faster - harder to modernize specific parts Microservices: ❌ Communication issues between services ❌ Harder to track bugs across multiple services ❌ Complex testing - need to check how services work together ❌ Higher infrastructure costs ❌ More coordination needed between teams Your role as PM isn't to choose the architecture. Your job is to understand these challenges and how they affect: • Your release planning • Team coordination • Resource allocation • Risk assessment Next time your team discusses architecture problems, ask "How does this impact our delivery?" instead of "How do we fix it?"
-
The demo looked perfect. Six weeks of work. Clean interface. Fast responses. Then production hit. The agent broke. Not the code. Not the model. The architecture. Because choosing how an AI agent works matters more than making it work. Most teams pick architecture like picking lunch. Whatever feels right. Whatever shipped fastest. Monolithic agents because they're simple. Multi-agent systems because they sound advanced. RAG pipelines because someone read a blog post. Nobody asks the hard question. What does this business actually need? One team watched their customer service agent collapse under load. Built as one massive system. Handling queries. Managing context. Routing decisions. Updating databases. Volume doubled, response times tripled. Edge cases appeared, the system froze. Updates needed, everything went dark. The architecture couldn't bend. So it broke. Another team went the opposite direction. Specialized agents for everything. One for intake. One for routing. One for analysis. One for validation. One for responses. Coordination became the nightmare. Context got lost between handoffs. Simple tasks took five agent calls. Flexible. But impossibly slow. Architecture isn't about following trends. It's about matching structure to reality. The right architecture comes from different questions: ➟ How complex are the tasks? ➟ How fast must responses be? ➟ How much control do humans need? ➟ How often does the system update? ➟ How much context needs to persist? ➟ How many external systems need integration? Three patterns for real applications: Monolithic when: Tasks are predictable and narrow. Speed beats flexibility. Updates are rare. Multi-agent when: Tasks vary in complexity. Different steps need different expertise. Parts scale independently. Hybrid when: Core logic needs stability. Edge cases need flexibility. Tasks run at different speeds. The broken monolith team rebuilt. Core agent handled standard queries. Specialists caught complex cases. Router decided the path. Response times dropped. Scaling became possible. Updates stopped breaking everything. The too-many-agents team simplified. Merged overlapping roles. Cut unnecessary handoffs. Built shared context storage. Performance improved. Maintenance became manageable. Users got faster answers. Both teams learned the same lesson. Architecture decisions make or break AI agents. Not during demos. During production. The best architecture isn't the newest. Or the most sophisticated. It's the one that fits what the business actually does. Because when architecture matches reality, agents don't just work. They scale. The critical question before building: Is the architecture being chosen or just copied? 🔄 Repost if architecture broke your AI agent. ➡️ Follow Aditya for production-ready AI agent insights.
-
Microservices are 8x slower to build than a monolith of the same functionality, and requires double the number of developers to even achieve that number. This is the measured outcome from a project I'm currently experiencing. I think these measures also reflect 2x greenfield projects I worked on earlier in my career when microservices were the new kid on the block. We spent a lot of time in those projects figuring out contracts between services and making breaking changes across multiple codebases as we iterated on solving the problem at hand. One of those projects took 12 months to deliver. I think we could have done it comfortably in 3 months if we went with a monolithic approach. That's not exactly 8x longer to go with microservices, but it's a very significant multiplier costing an additional $3-4 million dollars for the same functionality. Applying the "Single Responsibility Principle" to services has really killed productivity for many teams. If a service picks up some data, calls an API, transforms some data, enriches the data, persists data and then outputs some data. It's OK to put it into one service. I haven't even touched on debugging and maintaining microservices over a monolith. That might make the 8x multiplier look like rookie numbers.
-
🚫 𝗣𝗿𝗲𝗺𝗮𝘁𝘂𝗿𝗲 𝗠𝗶𝗰𝗿𝗼𝘀𝗲𝗿𝘃𝗶𝗰𝗲𝘀 𝗔𝗿𝗲 𝗮 𝗛𝗶𝗱𝗱𝗲𝗻 𝗧𝗮𝘅 𝗬𝗼𝘂 𝗖𝗮𝗻’𝘁 𝗔𝗳𝗳𝗼𝗿𝗱 🚫 Oleg Pustovit hits the nail on the head: too many companies jump into microservices way before they need to and pay the price in lost developer velocity, overhead, and team morale. Here’s what you’re really signing up for early on: ❌ Deployment and CI/CD complexity ❌ Fragile local dev environments ❌ Tightly coupled “decoupled” services ❌ Fragmented testing and costly observability 👎 All of this before you’ve even validated product-market fit. Instead? Start with a 𝗺𝗼𝗻𝗼𝗹𝗶𝘁𝗵: ✅ Simple deployment ✅ Community-supported frameworks ✅ Faster iteration and clearer team focus 💡 𝗞𝗲𝘆 𝘁𝗮𝗸𝗲𝗮𝘄𝗮𝘆: Microservices are not a best practice they’re a scaling strategy. 𝗦𝗽𝗹𝗶𝘁 𝘆𝗼𝘂𝗿 𝗮𝗿𝗰𝗵𝗶𝘁𝗲𝗰𝘁𝘂𝗿𝗲 𝗼𝗻𝗹𝘆 𝘄𝗵𝗲𝗻: 🎯Workloads must be isolated 🎯Systems scale at different rates 🎯Runtime environments diverge Otherwise? You’re burning precious runway on infrastructure instead of features. Practical tips: 💡Use a single repo 💡Make local setup seamless 💡Automate CI/CD early 💡Invest in velocity, not elegance 💡Earn every layer of complexity you add 🔗 Link to the article can be found in the comments. #microservices #developerexperience #softwareengineering #monoliths
-
Microservices Vs. Monolithic Architecture - Which one do you need and When? Let me end all confusion and give you clarity with a small summary: ► Microservices 1. Definition - Small, independent software components for specific functions. - Operate independently, communicate through APIs. - Modular and individually scalable components. - Technology diversity across different services. 2. Advantages - Scalability and flexibility across multiple services. - Resilience, faults in one service don’t affect others. - Faster updates and continuous deployment possible. - Independent development for each service. 3. Challenges - Increased complexity in managing multiple services. - Issues with distributed systems and communication. - Requires strong monitoring and debugging tools. - High operational overhead for infrastructure. ► Monolithic 1. Definition - Single, unified application where components are interconnected. - All functionalities share the same database and codebase. - Tightly integrated and developed as a single unit. - Scaled and deployed together as one system. 2. Advantages - Simpler development, deployment, and management process. - Easier debugging within a unified codebase. - Faster to start and develop smaller projects. - Straightforward scaling and testing as one application. 3. Challenges - Difficult to scale individual components separately. - Lack of modularity leads to risk in updates. - Technology stack is limited to a single platform. - Slower deployment for larger, complex applications. ► How do you make the choice? 1. What is the size and complexity of your project? - Simple projects may benefit from monolithic simplicity. 2. How scalable does your system need to be? - Does your application require scaling specific components independently? 3. What is your team size and skill set? - Do you have the expertise to manage the complexity of microservices? 4. What are the deployment and release frequency needs? - Will you be updating features frequently or less often? 5. How critical is fault tolerance? - Can your application handle one component failing without impacting others? 6. How important is technology flexibility? - Do you need the freedom to use different technologies for different services? 7. What are your infrastructure and operational capabilities? - Can your infrastructure handle the distributed nature of microservices? 8. How does your system handle data consistency? - Do you need strong consistency (better with monoliths) or eventual consistency (common in microservices)? 9. What is your budget for maintaining the architecture? - Microservices often require more resources for management and monitoring. 10. How fast do you need to get to market? - A monolithic architecture may allow faster initial development. -- Image Credits: blogs.amigoscode.com
-
Pretty great and scary read; brings home a point Randy Shoup has been making for a long time now but I hadn't internalized well. Also credit to Chris Trimble on the guiding principle: Make services as small as necessary but no smaller. https://lnkd.in/gwxx-jaS Key points: 1. The "Network Tax" is Real 💸 We traded simple in-memory function calls for gRPC and REST overhead. Suddenly, a single user action required 5 internal network hops. We didn't just inherit latency; we inherited the "Fallacies of Distributed Computing." Handling retries, circuit breakers, and timeouts became 30% of our codebase. 2. Cognitive Overload 🧠 With 20+ microservices for a 5-person team, no one could keep the whole system in their head. Debugging a single request meant jumping through five repositories and stitching together logs in Datadog. We spent more time "plumbing" than building features. 3. The Deployment Hell 🚢 We were promised independent deployments. In reality? We had a "Distributed Monolith." Because our service boundaries were leaky, a change in Service A still required a coordinated release with Service B and C. We had all the complexity of microservices with none of the decoupling benefits. 4. Infrastructure Overkill ☁️ Our AWS bill was astronomical. Running Kubernetes clusters, service meshes, and managed databases for every tiny service eats capital fast. For a startup, every dollar spent on "infrastructure orchestration" is a dollar not spent on customer acquisition. The Hard Truth: Microservices are a solution to an organizational problem, not a technical one. They help 500+ developers stay out of each other's way. If you have 5 developers, you don't have a "scaling" problem; you have a "velocity" problem. My advice to founders and leads? 💡 Build a Modular Monolith first. Keep your domains separated within a single codebase. Use clear interfaces. If—and only if—a specific module needs to scale independently or has a different technology requirement, then extract it. Don't let "best practices" kill your agility. Start simple. Stay alive. #SoftwareEngineering #Startups #Microservices #WebDevelopment #SystemDesign #TechLeadership #Programming
-
Most monoliths don’t fail because they’re monoliths. They fail because everything can touch everything. That’s the real difference between a regular monolith and a modular monolith. A regular monolith can be well-structured. You can have folders, layers, Clean Architecture, Vertical Slices, and still end up with hidden coupling everywhere. The problem usually starts small: One feature needs data from another area. So you reference its entity. Then another use case needs some logic. So you call into that service. Then a query needs more data. So you join across tables. None of this feels wrong in the moment. But over time, the boundaries disappear. A modular monolith is still deployed as one application. But the key difference is that module boundaries are enforced: - Separate projects - Clear ownership - Public APIs between modules - Controlled dependencies - Optional database/schema isolation The goal isn’t to make the code “look modular.” The goal is to make coupling explicit. That’s what gives you flexibility later if one part of the system needs to move into its own service. I break down the difference using the same app implemented both ways here: https://lnkd.in/dB_7brFt
-
In 2019, Doordash re-engineered its systems and moved to a microservice architecture from its previous monolith architecture. They were rapidly scaling, and microservices were the best option for them to scale their backend service; however, it wasn’t an easy journey. They faced many challenges during the process. Here’s how they rebuilt the entire service with microservices: 1. The Problem with Monolith Architecture ↳ Initial monolith built on Django was great for quick development and scaling early on. ↳ As DoorDash grew, the monolith created bottlenecks, increased bugs, and developer frustration. ↳ Rolling back changes became expensive due to tightly coupled code and complex dependencies. 2. Why the Move to Microservices ↳ Monolith systems couldn’t scale with rising demand and traffic. ↳ Microservices offer isolation, agility, and resilience—minimizing impact from service failures. ↳ Allowed teams to focus on individual domains, reducing cognitive load and increasing efficiency. 3. The Roadmap for Transition ↳ Prehistory (2014-2019): Initial services were extracted without a cohesive plan, still dependent on the monolith. ↳ Project Reach (2019): Standardized tech stack (Kotlin, gRPC) and began structured code extraction. ↳ Project Metronome: Prioritized extraction of core workflows with management buy-in and team involvement. ↳ Project Phoenix: Final planning and execution of a fully microservice-based platform. 4. Challenges Faced During Migration ↳ Convincing teams to let go of the monolith due to cognitive bias (IKEA effect). ↳ Developing new reliability patterns while avoiding temporary anti-patterns (like direct DB access). ↳ Handling gradual service adoption and database migrations without disrupting operations. ↳ Managing technical debt as old and new systems ran in parallel during the transition. 5. The New Architecture ↳ Frontend Layer: Different apps for customers, Dashers, and merchants. ↳ BFF (Backend-for-Frontend) Layer: Orchestrates backend services for smoother frontend integration. ↳ Backend Layer: Manages core logic like order, delivery, and payments. ↳ Platform Layer: Provides reusable services like identity management. ↳ Infrastructure Layer: Powers databases and cloud operations with seamless scaling. 6. Results and Takeaways ↳ 50+ microservices now support DoorDash’s platform, 20 of which are business-critical. ↳ Achieved better uptime, agility, and isolation—allowing rapid development of new features. ↳ Smaller, focused teams now manage services efficiently, reducing cognitive load. ↳ Lessons: Transitioning takes time, but aligning tech and business goals ensures success.
Explore categories
- Hospitality & Tourism
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Healthcare
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Career
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development