The biggest challenges with designing a Nostr Relay isn’t the tech. Persistence strategy, architecture, platforms and language trade-offs are reasonably well understood.
The big issue is nips. How the clients implement them, when to build them, test cases. These all change with time. So it can feel like building on quicksand.