The facade calls 10 internal services (100-300 ms each) plus a global service in China (500 ms), resulting in a total response time of about 3.5 seconds. How would you solve this problem to speed up processing?
Golang
If one of the services you use returns an error, what will you do and how will you handle it if there is a channel?
How was the soft hold of remaining reservations organized with final reconciliation upon confirmation of the booking?
You had one service gateway that all partners communicated with (B2B)? How many instances was it running?
Do you have any questions for your colleague?
Как сделать так, чтобы вообще не ходить в сервис, который заведомо упадёт или недоступен?
Did Redis hold data purely in-memory or was there a fallback to disk? What happens if Redis crashes?
In Go language, there are goroutines — lightweight threads. Can you tell when you should use a goroutine and when not?
If there is a large task, for example, a 10 GB file with line-by-line settings, and each line needs to be processed (for example, adding a period at the end), can goroutines help speed up this work?
Are you afraid of a time tracker? Why?
If channels are used to collect results from services, how many channels would be needed to organize this mechanism?
How many data centers have you had — one or several?
How was RPS calculated — by summing the load across all handles, or otherwise?
How did you implement atomicity of writing in Redis? What algorithm did you use (Lua script)?
How to understand where the bottleneck is when processing a file — if line-by-line processing seems slow, but goroutines process in a loop?
If you make a synchronous database or neighboring service request that takes 5 seconds, what will happen to the operating system thread running the service?
Do you mainly work remotely?
You mentioned you had a service that listens to Kafka and updates the cache in Redis, right?
What data would you pass inside this channel (what data structure)?
Did the service simply distribute data from the cache, or did it perform some other logic?