3.3 KiB
3.3 KiB
Milestone: 멀티앱 채널 모델
위치
- Roadmap:
agent-roadmap/ROADMAP.md - Phase:
agent-roadmap/phase/messaging-runtime/PHASE.md
목표
여러 앱이 nexo를 사용할 때 서비스 전체를 복제하지 않고 앱별 사용 채널과 알림 라우팅만 늘릴 수 있는 모델을 검토한다. 이 Milestone은 아직 컨셉 단계이며, 앱 식별, channel/team/tenant 분기, 권한, push credential 분리 기준을 먼저 정한다. server/webapp/push-proxy는 upstream-followable runtime으로 두고, 앱별 내장은 Flutter SDK 설정으로 확장한다.
상태
[스케치]
승격 조건
- 첫 번째 외부 소비 앱 또는 내부 테스트 앱 후보를 정한다.
- 앱별 channel namespace, team/server 분리, tenant 분리 중 어떤 모델을 쓸지 결정한다.
- 앱별 push credential과 routing callback 분리 기준을 정한다.
- 구현 가능한 후속 Milestone을 API, server config, client integration 중 하나 이상으로 나눈다.
구현 잠금
- 상태: 잠금
- 결정 필요:
- 앱별 분기를 channel 중심으로 둘지 tenant/server 중심으로 둘지 결정한다.
- 하나의 push-proxy credential을 공유할지 앱별 credential을 분리할지 결정한다.
범위
- 앱별 channel/tenant/server 분기 후보
- plugin configuration model 후보
- server core 설정과 push-proxy credential 분리 후보
- Mattermost webapp/reference front와 embedded SDK가 함께 사용할 수 있는 channel/team 모델 후보
- 첫 번째 소비 앱 onboarding 흐름
기능
Epic: [model] 분기 모델
추가 앱이 생길 때 어떤 단위로 메시징 공간을 나눌지 후보를 정리한다.
- [channel-model] channel 중심 분기 모델의 장단점과 필요한 server/plugin 설정을 정리한다.
- [tenant-model] tenant/server 중심 분기 모델의 장단점과 운영 비용을 정리한다.
- [credential-model] push credential 공유/분리 후보와 위험을 정리한다.
Epic: [onboarding] 앱 온보딩
새 앱이 nexo 메시징/알림을 붙일 때 필요한 최소 절차를 정의한다.
- [app-config] 앱이 넘겨야 할 server URL, auth token, signing key, routing callback 설정 후보를 정리한다.
- [smoke-flow] 새 앱 onboarding 후 확인해야 할 FCM, ACK, opened event smoke 흐름을 정리한다.
완료 리뷰
- 상태: 없음
- 요청일: 없음
- 완료 근거: 없음
- 리뷰 필요:
- 사용자가 완료 결과를 확인했다
- archive 이동을 승인했다
- 리뷰 코멘트: 없음
범위 제외
- 구체적인 멀티테넌시 구현은 승격 전까지 진행하지 않는다.
- 앱별 billing, admin UI, organization management는 포함하지 않는다.
- 기존 core의 team/channel 모델을 대체하지 않는다.
작업 컨텍스트
- 관련 경로:
services/core/,packages/messaging_flutter/,apps/client/ - 표준선(선택): 먼저 channel 기반 최소 모델을 검토하고, 운영 비용이 커질 때 tenant/server 분리를 검토한다
- 선행 작업: 메시징 계약 표준화, 알림 파이프라인 고도화
- 후속 작업: 업스트림 런타임 운영화 Phase의 CI/CD와 운영 업데이트 루프
- 확인 필요: 앱별 분기 단위와 credential 분리 기준