# Monolith

Start building a monolith and not a microservice ecosystem. A microservice setup is an optimization, with its inherent costs, complexity and [some hard problems](https://www.youtube.com/watch?v=STKCRSUsyP0). 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://thekarel.gitbook.io/best-practices/constraints/monolith.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
