Define what APIs are expected from the system...
Explain how the request flows from end to end in your high level design. Also you could draw a sequence diagram using the diagramming tool to enhance your explanation...
discussed above..
discussed above..
We will be having multiple replicas of KPS, we can use AWS-APiGateway, which can acts as LB for us as well.. we added cache before KPS to handle the scalibility, we could also add cache-layer b/w KPS and KGS, to have small set of unused short-urls pre-picked. If this cache goes down, we should be fine as the amount of unused-short-urls lost is very low as compared to what is available in unused-keys-ddb..
Our services interacts interally via means of Grpc clients with exponential back-off retry strategy in place..
We could have a few customer-imitating user-ids available which would fire get/set calls and validate the outputs. These imitators we could use to create auto-cut tickets in case of any failure.
We will be emitting faults/error/P90 latency spike metrics and will have graphs/dashboards built over these(with alarm thresholds set) to pre-emptly catch any failure/fault/error.