Tome.gg Library
Tome.gg
  • Tome.gg Library
  • Onboarding
    • Self-directed learning
      • Junior Software Engineer
      • Mid- to Senior-level Software Engineer
    • Accelerated learning
      • Junior Software Engineer
      • Mid- to Senior-level Software Engineer
  • Fundamentals
    • Reading, Writing, Discourse
  • Contexts
    • Overview
    • Problems
      • How do I manage a change in levels of formality on my apprenticeship?
      • Monolith vs. Microservice
      • Office Bullies
      • On Developing Motivation
      • Building Confidence
      • All Work and No Play
      • Handling disappointment and frustration
    • Scenarios
      • Offering Guidance Without Context
      • Code Review Disagreements
      • Misunderstandings and Unreliable Communications
      • Unrealistic Deadlines
      • Conflicting Coding Practices
      • Receiving Feedback on Performance Reviews
      • Bias in Task Distribution
      • Disagreements Over Tech Stack Choices
      • Dispute Over Feature Priority
      • Exclusion from Important Meetings
      • Lack of Recognition for Work
      • Dealing with Unconstructive Criticism
      • Resolving Conflict Over Deadline Disputes
      • Overcoming Conflict over Technical Debt
      • Addressing Discrimination or Harassment
      • Documentation Disputes
      • Managing Remote Work Discrepancies
      • Navigating Design Disagreements
      • Handling Security Concerns
      • Addressing Culture Fit Problems
      • Resolving Intellectual Property Disputes
  • Resources
    • Roadmap
  • EXTRAS
    • Frequently Asked Questions
      • Is Tome.gg coaching and mentoring for me?
      • Tome.gg Overview
    • Roadmap
    • Contributing Guidelines
    • Privacy Policy
Powered by GitBook
On this page
  • Problem
  • Recommendation
  • Effective use
  • Misuse
  • References

Was this helpful?

  1. Contexts
  2. Problems

Monolith vs. Microservice

On scalable technologies and teams

PreviousHow do I manage a change in levels of formality on my apprenticeship?NextOffice Bullies

Last updated 1 year ago

Was this helpful?

This blog article was generated by 🤖 AI using prompts crafted by our mentors.

This article may contain details that are factually incorrect, and is a current work-in-progress on the Tome.gg Library. These articles are undergoing content development review by the Tome.gg content team in collaboration with mentors, leaders, and educators.

Contributing - Have a question or want to talk about this topic? Want to contribute or give your insights about it? Provide feedback to our content team by discussing this article by linking this page on our Discord channel: .

Microservices architecture offers a modular, scalable, and resilient way to structure applications, fostering efficient development, deployment, and maintenance, which can lead to competitive advantages and better outcomes in the market.

Problem

  • Applications structured as monoliths can be inflexible, difficult to scale, and hard to maintain.

  • Traditional application architectures may not allow for efficient development processes, as each change affects the whole system.

  • Staying relevant and effective in software engineering requires understanding and adapting to modern concepts like microservices, which can be challenging for both junior and senior engineers.

Recommendation

  • Adopt microservices architecture to make applications more modular, flexible, and resilient, with each service independently developed, deployed, and scaled.

  • Introduce the concept of microservices to junior engineers with a focus on the big picture and how it fits into the company's overall goals and strategies.

  • Encourage mid-level and senior-level software engineers to study and explore microservices in depth, using resources like Microservices.io, Martin Fowler's website, and Kubernetes documentation.

Effective use

  • Breaking down applications into smaller services, each manageable by a smaller team, leads to more efficient development processes.

  • Microservices architecture can help organizations achieve faster time-to-market, improved scalability, and increased resilience.

  • It allows software engineers to make more informed decisions in their work, leading to greater contributions and value to their organizations.

Misuse

  • Without a proper understanding, microservices can be misapplied, leading to increased complexity and operational overhead.

  • If microservices are introduced without a clear strategy and alignment with company goals, it can lead to confusion and ineffective application structures.

  • Ignoring the trade-offs and potential risks associated with implementing microservices can lead to unexpected costs and delays.

References

The Workshop > The Garage
https://microservices.io/
https://microservices.io/post/refactoring/2020/07/28/six-principles-for-refactoring-to-microservices.html
https://microservices.io/post/architecture/2022/11/29/yow-london.html