Because of how Bluesky is designed, to meaningfully federate, your server needs to ingest all data from everywhere, and every new message needs to be sent to every single other federated server.
This means that Bluesky just isn't set up for federation currently: it scales quadratically.
Self-hosting a PDS is not the same.
https://dustycloud.org/blog/how-decentralized-is-bluesky/
I'm glad to see someone attempting to run their own index but the protocol is not meant to scale that way, and it gets worse the more indexes there are.