op-geth needs the op-supervisor to check log events safety
op-supervisor needs op-geth to fetch log events and block data
The op-supervisor should decouple the notion of an "L2 endpoint" from an "L2 monitor / DB". If the endpoint is unavailable, offline, etc. then the existing DB should still be discovered, and the existing data should be served.
An L2 endpoint should be possible to add/remove from the op-supervisor without restarting the L2 monitor, or the backend as a whole.
Once it's more decoupled, the op-supervisor can be started, op-geth can connect to it, and then we can make the op-supervisor connect to op-geth when available.
Ideally we also make op-supervisor retry connection attempts of existing configured endpoints, without blocking startup of the op-supervisor, so that we don't have to call the op-supervisor RPC after all the things start up.
There is a cyclic dependency in RPCs:
The op-supervisor should decouple the notion of an "L2 endpoint" from an "L2 monitor / DB". If the endpoint is unavailable, offline, etc. then the existing DB should still be discovered, and the existing data should be served.
An L2 endpoint should be possible to add/remove from the op-supervisor without restarting the L2 monitor, or the backend as a whole.
Once it's more decoupled, the op-supervisor can be started, op-geth can connect to it, and then we can make the op-supervisor connect to op-geth when available.
Ideally we also make op-supervisor retry connection attempts of existing configured endpoints, without blocking startup of the op-supervisor, so that we don't have to call the op-supervisor RPC after all the things start up.