I don't understand why Bitcoin Core software was designed as a monolith and not as a microservices architecture.
Now the node, the gui, the cli, the wallet are all in one.
For example, some people don't need the GUI, others don't need the CLI, or others don't need the wallet.
For example, some people can install a cli, set the node, and use it remotely, or some people can be take a wallet with a remote node.
So my question is, Why the core team deceided a monolith architecture? I don't find any reasonable fact for do this.
The goal is to eventually split it up, but it's not easy.
@CodersBrothers
I'm not qualified to answer the question about the rationale behind design decisions made roughly ten years ago but these are some recent open pull requests that might be of interest:
AFAIK no one opposes the idea of splitting it up, but doing so is non-trivial.
Closing. If you have more general/historical questions about the code base, the bitcoin stack exchange might be a better place to ask them.
Most helpful comment
The goal is to eventually split it up, but it's not easy.