# Advanced Usage

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.1/advanced/jsonrpc-daemon), the JSON RPC layer. (Most battle-tested external component)
* [TxPool](https://docs.erigon.tech/erigon/v3.1/advanced/txpool), the transaction pool
* [Sentry](https://docs.erigon.tech/erigon/v3.1/advanced/sentry), the p2p layer
* [Downloader](https://docs.erigon.tech/erigon/v3.1/advanced/downloader), the history download layer (we don't recommend run it externally)
* [Caplin](https://docs.erigon.tech/erigon/v3.1/advanced/consensus_layer/caplin), the novel 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.

> Don't start services as separated processes unless you have clear reason for it.
