You can get pretty far with simple in memory solutions when your problem space fits entirely within the constraints. We have a Go microservice for linking accounts to their proper federated logins with some associated metadata. There’s a refresh process that runs every fifteen minutes.
The entire set fits happily in memory and takes milliseconds to respond.