xmtpd
xmtpd copied to clipboard
feat(indexer): extract indexer to its own process
Currently the indexer is an in-process service, dependant on xmtpd. By moving it to an external process some key features would be achieved, such as:
- Improved fault tolerance. Potentially being able to introduce full HA in the future, by scaling horizontally the service.
- Fine-grained resources allocation.
- The database would be continuously synced, even it xmtpd is down.
- Independently managed.
it is worth pointing out that XMTPD is not a monolith. It can be run as a single process in dev environments and on localhost. In production, it is at least split in payer, indexer+sync, and API. We could run the indexer as its own service, separate from the sync service.
Today, in deployed environments, the failure modes of the indexer are independent of the API.