Клиенты попросили выгрузку данных одной таблички. Я предположил, что наверняка им нехватает какой-то функциональности в продукте, из-за чего им потребовалась выгрузка. Отправил коллег это выяснить.
После нескольких неуспешных попыток выяснить цель выгрузки данных, а именно, что они с этими данными будут делать, решили, что ладно, сделаем им выгрузку.
Данных не мало, и мы не можем отправлять между сервисами больше 5 Mb, а батчинг мы еще не реализовывали в протоколе, потому что не было необходимости. Часть протокола работает по tcp/ip, часть по websocket, часть через
socket.io прослойку для websocket.
Формируется выгрузка таблички с микросервиса, сжимается (ограничение 5 Mb), отправляется в другой сервис, где разорхивируется результат и агрегируется результат работы нескольких микросервисов. После опять сжимается и отправляется дальше.
И проходя через несколько транспортов tcp/ip, websocket, socket/io, часть из которых уже gzip’уется, все это чудо попадает на клиент. И тут стоит вопрос: выгружать в браузере выгрузку архивом или все таки распаковать?