🏁
Best Practices
  • Introduction
  • The Big Picture
    • Principles
      • Software engineers solve business problems
      • Programming is a social activity
      • Attention is the most precious resource in a project
      • Simplicity is the best ally in the long run
      • The only problem to solve is the one we have today
    • Architecture
      • Domain
      • Services
      • Persistence
      • HTTP
      • UI
    • Naming
  • Constraints
    • TypeScript
    • Monorepo
    • Monolith
    • Versioning
  • Source code
    • Declarative programming
    • The README
    • Modules
    • Folder structure
    • Code formatting
    • Code comments
  • The Outside World
    • Runtime configuration
    • Logging
  • Testing
    • The purpose of testing
      • End-to-end tests
      • Integration tests
      • Unit tests
  • Tools
    • Git
  • Resources
    • Resources
Powered by GitBook
On this page

Was this helpful?

  1. Constraints

Monolith

PreviousMonorepoNextVersioning

Last updated 5 years ago

Was this helpful?

Start building a monolith and not a microservice ecosystem. A microservice setup is an optimization, with its inherent costs, complexity and . Leave it to later, when there is a real need. You might never get to that point.

It is much easier to carve out truly independent slices once the team knows more about the system. Having a domain-driven, layered architecture makes this transition more comfortable by the way and can answer questions about responsibilities.

In case a service is extracted later, it should adhere to all the present recommendations: it will be an application in its own right.

some hard problems