Read moreDefinitely, no need for handshakes, maybe the service has it cached. Assuming the API is served from the same server though, no need to call a different service. I assume that's not the case here though.
Assuming the external API is fairly performant/indexed though, it shouldn't really be a problem. Most simple crud look ups take around 200 ms and can pretty easily scale to thousands of calls per second without too mcu overhead.
Not sure how a characters current build is stored though, so it might involve some fairly complex queries.
Ultimately calls to external services aren't going to negatively impact the client outside a few extra ms of latency for that one request, and they obviously don't tax the game server at all.
It could strain the DB that the game server uses, assuming the external service shares the same cluster, and the game service itself may already have that cached, so it's just more overhead. Obviously it also puts a little more CPU...
Well, it has to come from the active game server because that is the only thing with the current information. The API call returns the last long term saved version. So it would update as you were playing but could possibly be slightly out of date. So if we used the external API then you wouldn't be able to change your gear and have people see it right away.
So while the API is very good as you said, the active game server is faster and cheaper.
We also still need to have the design meeting to discuss if we even want to do this too.