1

First post here, I'm sure this information is somewhere on the web, but the problem is I'm such a noob I don't know what to search for.

So, my problem is that I want to design a sign up API. Let's say I want to wait for the user to confirm his email; however, I don't want to save the expiry date of the confirmation to the database since it would be inefficient, right? Additionally, I would need to implement IP-based blocking so a malicious user couldn't bombard me with sign-up requests? But I can't restrict single sign-up per IP at a time, because of shared IPs (VPNs, Wi-Fi networks). But then again, how would I secure that?

So I want to cache that locally. I could use a memcache-like solution, but what if I want to use something like Kubernetes to create multiple servers? (Assuming I don't want to setup an independent cache solution like Redis).

I'm guessing I need to somehow save in the client's cookies the particular server's ID that the client is using? So that when they access another API endpoint I can use some Kubernetes magic to guide that user back to the same server he used before allowing them to login I can access their session data.

I suspect all these concepts are implementation agnostic, but if anyone has any specific guidance then I should let you know that my current idea for the stack is Go (gqlgen, pgx), PostgreSQL, GraphQL, Kubernetes. I dunno about hosting (AWS, Google, Azure or VPS etc.).

I know these are fundamental concepts, and I'd very much like to research further topics and I don't expect a thorough long explanation from you, but instead I'd like to know what this concept is called so I can research it further. Maybe a book or a beginner-friendly article about this sort of stuff would be very much appreciated.

Thanks.