Files
Edu/docs/architecture/issues/matrix.md
SpecialX faaaf29f67 docs: ai 协作文档体系重构与多 ai 仲裁结果落地
1.AI 协作文档体系重构(objections/worklines/contracts+matrix.md)

2.coord 仲裁文档(final-decisions/cross-review/final-rulings/orchestration)

3.各服务 01/02 文档补全

4.共享包初始化(shared-ts/shared-go/hooks/ui-components/ui-tokens)

5.Proto 契约补全

6.004 架构影响地图更新

7.端口分配表

8.设计规格文档
2026-07-10 12:58:22 +08:00

14 KiB
Raw Blame History

上下游对接总矩阵

维护者coord协调 AI 关联:coord.mdworkline.md、各模块 contracts/ 模式:全并行开发(各 AI 一口气完成 P2-P6开发期间用 mock最后统一集成测试


§1 服务依赖矩阵(谁调用谁)

graph TB
    subgraph Frontend["微前端层"]
        TP[teacher-portal<br/>ai13 :4000]
        SP[student-portal<br/>ai14 :4001]
        PP[parent-portal<br/>ai15 :4002]
        AP[admin-portal<br/>ai16 :4003]
    end

    subgraph Gateway["网关层"]
        AGW[api-gateway<br/>ai01 :8080]
        PGW[push-gateway<br/>ai02 :8081]
    end

    subgraph BFF["BFF 层"]
        TBFF[teacher-bff<br/>ai03 :3003 GraphQL]
        SBFF[student-bff<br/>ai04 :3009 GraphQL]
        PBFF[parent-bff<br/>ai05 :3010 GraphQL]
    end

    subgraph Services["业务服务层"]
        IAM[iam<br/>ai06 :50052]
        CORE[core-edu<br/>ai08 :50053]
        CONTENT[content<br/>ai09 :50054]
        MSG[msg<br/>ai10 :50056]
        DATA[data-ana<br/>ai11 :50055]
        AISVC[ai<br/>ai12 :50057]
    end

    TP --> AGW
    SP --> AGW
    PP --> AGW
    AP --> AGW
    TP -.推送.-> PGW
    SP -.推送.-> PGW
    PP -.推送.-> PGW

    AGW --> TBFF
    AGW --> SBFF
    AGW --> PBFF

    TBFF --> IAM
    TBFF --> CORE
    TBFF --> CONTENT
    TBFF --> DATA
    TBFF --> MSG
    TBFF --> AISVC

    SBFF --> IAM
    SBFF --> CORE
    SBFF --> CONTENT
    SBFF --> DATA

    PBFF --> IAM
    PBFF --> CORE

    PGW --> MSG

    AISVC --> CONTENT
    AISVC --> DATA

    CORE -.Kafka.-> CONTENT
    CORE -.Kafka.-> DATA
    CORE -.Kafka.-> MSG
    CONTENT -.Kafka.-> DATA
    IAM -.Kafka.-> CORE
    IAM -.Kafka.-> MSG

§2 gRPC 接口提供方矩阵

提供方 gRPC 端口 Service RPC 数 消费方 就绪信号 状态
iam (ai06) 50052 IamService 12 teacher-bff / student-bff / parent-bff / api-gateway HealthService.Check = SERVING
core-edu (ai08) 50053 ClassService + ExamService + HomeworkService + GradeService + AttendanceService 22 teacher-bff / student-bff / parent-bff HealthService.Check = SERVING
content (ai09) 50054 TextbookService + ChapterService + KnowledgeGraphService + QuestionService 18 teacher-bff / student-bff / ai HealthService.Check = SERVING
data-ana (ai11) 50055 AnalyticsService 12 teacher-bff / student-bff / parent-bff / ai HealthService.Check = SERVING
msg (ai10) 50056 NotificationService + NotificationPreferenceService + NotificationTemplateService 13 teacher-bff / push-gateway HealthService.Check = SERVING
ai (ai12) 50057 AiService 6 teacher-bff HealthService.Check = SERVING

§3 GraphQL 接口提供方矩阵

提供方 HTTP 端口 Endpoint 消费方 schema 文件 状态
teacher-bff (ai03) 3003 POST /graphql teacher-portal / admin-portal packages/shared-ts/contracts/graphql/teacher-bff.graphql
student-bff (ai04) 3009 POST /graphql student-portal packages/shared-ts/contracts/graphql/student-bff.graphql
parent-bff (ai05) 3010 POST /graphql parent-portal packages/shared-ts/contracts/graphql/parent-bff.graphql

§4 Kafka 事件发布方矩阵

发布方 Topic Event 消费方 Outbox 状态
iam (ai06) edu.iam.user.events UserEventcreated/updated/deleted/role_changed core-edu / msg / push-gateway / teacher-bff / student-bff
iam (ai06) edu.iam.role.events RoleEventcreated/updated core-edu / msg
iam (ai06) edu.iam.audit.created AuditEventcreate/update/delete/login/logout admin-portal
core-edu (ai08) edu.exam.events ExamEventcreated/updated/deleted msg / data-ana / push-gateway
core-edu (ai08) edu.homework.events HomeworkEventassigned/submitted/graded msg / data-ana / push-gateway
core-edu (ai08) edu.grade.events GradeEventrecorded/updated msg / push-gateway / parent-bff
core-edu (ai08) edu.class.events ClassEventtransferred msg / data-ana
content (ai09) edu.content.kp.events KnowledgePointEventcreated/updated/prerequisite_* data-ana / ai / Neo4j Sync / ES Sync
content (ai09) edu.content.question.events QuestionEventcreated/updated/published/deleted data-ana / ai / ES Sync
msg (ai10) edu.notification.requested NotificationEventsent push-gateway / data-ana
data-ana (ai11) edu.analytics.mastery MasteryEventmastery.updated / warning.triggered core-edu / msg 豁免
ai (ai12) edu.ai.usage AIUsageEventchat/generate/lesson data-ana 豁免

§5 HTTP 接口矩阵(非 gRPC / 非 GraphQL

提供方 Method Path 用途 消费方 认证 状态
api-gateway (ai01) * /api/v1/teacher/* 反向代理 teacher-bff teacher-portal JWT
api-gateway (ai01) * /api/v1/student/* 反向代理 student-bff student-portal JWT
api-gateway (ai01) * /api/v1/parent/* 反向代理 parent-bff parent-portal JWT
api-gateway (ai01) * /api/v1/iam/* 反向代理 iam (内部) JWT
push-gateway (ai02) WS /ws WebSocket 推送通道 teacher-portal / student-portal / parent-portal JWT
push-gateway (ai02) SSE /sse SSE 推送通道 teacher-portal JWT
push-gateway (ai02) POST /internal/push 内部推送入口 msg X-Internal-Key
iam (ai06) GET /healthz 存活检查 k8s / 监控
iam (ai06) GET /readyz 就绪检查5 依赖) k8s / 监控
所有服务 GET /metrics Prometheus 指标 Prometheus

§6 错误码前缀矩阵

模块 前缀 示例
api-gateway GW_ GW_UNAUTHORIZED / GW_RATE_LIMITED
push-gateway PUSH_ PUSH_DEVICE_NOT_FOUND / PUSH_CHANNEL_FAILED
teacher-bff BFF_XXX_ BFF_TEACHER_UNAUTHORIZED / BFF_TEACHER_BAD_GATEWAY
student-bff BFF_XXX_ BFF_STUDENT_UNAUTHORIZED
parent-bff BFF_XXX_ BFF_PARENT_CHILD_NOT_BOUND
iam IAM_ IAM_USER_NOT_FOUND / IAM_INVALID_CREDENTIALS
core-edu CORE_EDU_ CORE_EDU_EXAM_NOT_FOUND
content CONTENT_ CONTENT_QUESTION_NOT_FOUND
msg MSG_ MSG_NOTIFICATION_NOT_FOUND
data-ana DATA_ANA_ DATA_ANA_DASHBOARD_UNAVAILABLE
ai AI_ AI_GENERATION_FAILED / AI_QUOTA_EXCEEDED

§7 全并行开发 Mock 策略汇总

消费方 消费的接口 Mock 方式 切换真实时机
api-gateway iam.GetPublicKey 硬编码 RS256 公钥DEV_MODE iam gRPC 50052 就绪
teacher-bff iam gRPC 12 RPC grpc-mock 拦截 + 固定 JSON iam 就绪信号
teacher-bff core-edu gRPC 22 RPC grpc-mock 拦截 + 固定 JSON core-edu 就绪信号
student-bff iam + core-edu + content + data-ana grpc-mock 拦截 各服务就绪信号
parent-bff iam + core-edu grpc-mock 拦截 各服务就绪信号
teacher-portal teacher-bff GraphQL MSW 拦截 + 固定 response teacher-bff GraphQL 就绪
student-portal student-bff GraphQL MSW 拦截 student-bff GraphQL 就绪
parent-portal parent-bff GraphQL MSW 拦截 parent-bff GraphQL 就绪
admin-portal teacher-bff GraphQL (admin) MSW 拦截 teacher-bff admin namespace 就绪
push-gateway msg Kafka 事件 本地 Kafka mock producer msg 就绪信号
ai content + data-ana gRPC grpc-mock 拦截 各服务就绪信号
data-ana core-edu/content/ai Kafka + CDC 本地 Kafka mock + ClickHouse 模拟数据集 各服务就绪信号

§8 就绪信号跟踪表

各 AI 完成模块后,在此表更新状态( 进行中 → 就绪)

模块 AI 就绪信号 状态 完成时间
iam ai06 gRPC 50052 + 12 RPC + HealthService SERVING -
api-gateway ai01 :8080 可访问 + JWT 验签 -
teacher-bff ai03 POST /graphql + 5 Query -
teacher-portal ai13 :4000 可访问 + 登录→Dashboard -
core-edu ai08 gRPC 50053 + 22 RPC + HealthService SERVING -
content ai09 gRPC 50054 + 18 RPC + HealthService SERVING -
msg ai10 gRPC 50056 + 13 RPC + HealthService SERVING -
data-ana ai11 gRPC 50055 + 12 RPC + HealthService SERVING -
ai ai12 gRPC 50057 + 6 RPC + HealthService SERVING -
student-bff ai04 POST /graphql + Dashboard Query -
parent-bff ai05 POST /graphql + Dashboard Query -
push-gateway ai02 :8081 可访问 + /internal/push -
student-portal ai14 :4001 可访问 + MF Remote -
parent-portal ai15 :4002 可访问 + MF Remote -
admin-portal ai16 :4003 可访问 + MF Remote + admin -

§9 统一集成测试检查清单

所有模块就绪后,按此清单进行统一集成测试

9.1 认证链路

  • teacher-portal 登录 → api-gateway → iam → JWT 签发
  • JWT 验签 → x-user-id 注入 → teacher-bff 读取

9.2 GraphQL 链路

  • teacher-portal → teacher-bff GraphQL dashboard Query
  • teacher-bff → iam gRPC + core-edu gRPC 并行聚合
  • ActionState 信封正确返回

9.3 事件链路

  • core-edu 发布 GradeEvent → Kafka → msg 消费 → push-gateway 推送
  • data-ana 消费 CDC 事件 → ClickHouse 写入

9.4 MF 链路

  • teacher-portal Shell 加载 student-portal Remote
  • GraphQL client 单例跨 Remote 共享

9.5 推送链路

  • msg → push-gateway /internal/push → WebSocket 推送到前端