# Modules

Erigon is by default an "all-in-one" binary solution, but it's possible start any internal component as a separated processes:

* [RPCDaemon](https://docs.erigon.tech/erigon/v3.2/fundamentals/modules/rpc-daemon), the JSON RPC layer. (Most battle-tested external component)
* [TxPool](https://docs.erigon.tech/erigon/v3.2/fundamentals/modules/txpool), the transaction pool
* [Sentry](https://docs.erigon.tech/erigon/v3.2/fundamentals/modules/sentry), the p2p layer
* [Downloader](https://docs.erigon.tech/erigon/v3.2/fundamentals/modules/downloader), the history download layer (we don't recommend run it externally)
* [Caplin](https://docs.erigon.tech/erigon/v3.2/fundamentals/caplin), the embedded Consensus Layer

This may be for security, scalability, decentralisation, resource limitation, custom implementation, or any other reason you/your team deems appropriate. See the appropriate section to understand how to start each service separately.

{% hint style="success" %}
Don't start services as separated processes unless you have clear reason for it.
{% endhint %}
