Разработка YDB SDK
Эта статья - черновик заметок по разработке SDK, может произвольным образом меняться, дополняться и удаляться. Версия НЕ стабильна.
Руководство для разработчиков SDK
Тут описываются общие подходы к построению SDK и реализации клиентов для YDB. Это не прямое указание к действию и не пошаговая инструкция, а скорее описание общих принципов разработки, которых придерхивается команда YDB. Это понимание будет полезно как для исследования кода существующих SDK, так и для разработки собственных.
Общие принципы
- Надёжность - SDK должны быть надёжными в плане сохранности пользовательских данных и должны помогать строить отказоустойчивые системы
- Удобная безопасность - самый удобный способ работы с API должен быть безопасным, в том смысле что там сложно написать код неправильно или ещё хуже сделать ошибку, которая будет незаметно портить работу приложения
Протокол
SDK общается с сервером с по протоколу grpc c protobuf-сообщениями. Серверная версия протоспек есть в репозиторииYDB: сервисы/медоды и сообщения.
При этом все наши SDK, за исключением C++, в качестве источника используют репозиторий https://github.com/ydb-platform/ydb-api-protos. И для новых SDK рекомендуем использовать этот отдельный репозиторий.
Описание работы с топиками:
- Отправка сообщений в YDB Topics на уровне GRPC - описания протокола общения с сервером при отправке сообщений
- Описание grpc-сообщений сервиса топиков в YDB - описание самих сообщений
- Архитектура SDK для работы с YDB-топиками