Files
SHiNE-server/Черновик_CHANNEL_MEMBERSHIP_для_каналов.md
T

61 lines
3.0 KiB
Markdown

# Черновик CHANNEL_MEMBERSHIP для каналов
## Статус документа
Этот файл является отдельным отложенным черновиком.
Важно:
- тема временно вынесена из основной первой итерации;
- в текущую реализацию не входит;
- документ нужен, чтобы не потерять уже согласованные мысли и вернуться к ним позже.
## Зачем вынесено отдельно
`CHANNEL_MEMBERSHIP` пока решено не делать вместе с `TEXT` и `STATUS_ACTION`, чтобы:
- не перегружать текущую реализацию;
- не смешивать две разные задачи;
- спокойно завершить первую итерацию по контенту и статусам;
- вернуться к membership позже отдельным этапом.
## Отложенная схема ссылок
На текущий момент в отложенный черновик заносится такая схема:
- `JOIN_REQUEST` ссылается на root-блок канала;
- `JOIN_ACCEPTED` ссылается на `JOIN_REQUEST`;
- `LEFT` ссылается на root-блок канала;
- `REMOVED` ссылается на последнее membership-событие этого участника в этом канале, лучше всего на `JOIN_ACCEPTED`.
## Предварительные подтипы
Если тема будет возвращена в реализацию, предварительно рассматриваются:
- `subType=10``CHANNEL_JOIN_REQUEST`
- `subType=20``CHANNEL_JOIN_ACCEPTED`
- `subType=30``CHANNEL_LEFT`
- `subType=40``CHANNEL_REMOVED`
## Что ещё нужно будет отдельно решить позже
Перед возвратом к теме нужно будет отдельно утвердить:
- точный байтовый формат `CHANNEL_MEMBERSHIP`;
- в чьём блокчейне пишутся membership-события;
- политику прав доступа:
- кто может писать `JOIN_ACCEPTED`;
- кто может писать `REMOVED`;
- кто и как подтверждает актуальный состав канала;
- как сервер строит read-model текущего состава канала;
- как UI показывает pending-заявки, принятых участников, вышедших и исключённых.
## Краткий итог
`CHANNEL_MEMBERSHIP` не отменён, а именно отложен.
Следующий рекомендуемый шаг:
- сначала завершить первую итерацию `TEXT + STATUS_ACTION`;
- потом отдельным этапом вернуться к membership-логике каналов.