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.


closed as too broad by John Conde Aug 8 at 12:00

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.