Предоставление схемы protobuf / json клиентской стороне для операций CRUD - PullRequest
0 голосов
/ 29 мая 2020

Я создаю мобильное приложение (ios / swift), которое подключается к стороне сервера (dockerized c ++ / java микросервисы) с помощью grp c. Данные хранятся в mysql как сериализованные большие двоичные объекты protobuf в сегментированном mysql. Для целей этого вопроса мы можем предположить, что база данных разделена на следующие строки: https://medium.com/pinterest-engineering/sharding-pinterest-how-we-scaled-our-mysql-fleet-3f341e96ca6f

Поскольку сообщения клиент-сервер в основном являются protobuf, есть ли причина НЕ хранить сообщения на стороне клиента напрямую в базу данных без какого-либо перевода для операций CRUD. Я знаю, что обычно не рекомендуется предоставлять клиенту схему db, но действует ли это правило, если объектом db является JSON / protobuf. * ​​1006 *

Альтернативой является наличие уровня перевода, который преобразует «тип сообщения» protobuf в protobuf "типа данных". Однако я пытаюсь придумать конкретный вариант использования c (несколько клиентских версий и c), где это могло бы помочь. Я бы хотел избежать этого, если для этого нет веской причины.

Любые отзывы приветствуются.

...