39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
/**
|
|
* AppModule - student-bff 根模块.
|
|
*
|
|
* 仲裁依据:
|
|
* - coord-final-decisions §2 B1 (GraphQL Yoga + DataLoader)
|
|
* - coord-final-decisions §2 B8 (DownstreamClient 抽象复用)
|
|
* - coord-final-decisions §1 G8 (GlobalErrorFilter)
|
|
*
|
|
* 模块装配:
|
|
* - CacheModule (Global): Redis 缓存
|
|
* - DownstreamModule (Global): gRPC 下游客户端
|
|
* - CircuitBreakerModule (Global): opossum 熔断器 (P6)
|
|
* - HealthModule: /healthz + /readyz
|
|
* - StudentModule: GraphQL Yoga + Resolver
|
|
* - DataLoaderModule: DataLoader 工厂
|
|
* - EventModule: Kafka 事件订阅 + push-gateway 推送 (P5)
|
|
*/
|
|
import { Module } from "@nestjs/common";
|
|
import { CacheModule } from "./shared/cache/cache.module.js";
|
|
import { DownstreamModule } from "./shared/downstream/downstream.module.js";
|
|
import { HealthModule } from "./shared/health/health.module.js";
|
|
import { StudentModule } from "./student/student.module.js";
|
|
import { DataLoaderModule } from "./student/dataloaders/data-loader.module.js";
|
|
import { EventModule } from "./student/events/event.module.js";
|
|
import { CircuitBreakerModule } from "./shared/circuit-breaker/circuit-breaker.module.js";
|
|
|
|
@Module({
|
|
imports: [
|
|
CacheModule,
|
|
DownstreamModule,
|
|
CircuitBreakerModule,
|
|
HealthModule,
|
|
DataLoaderModule,
|
|
StudentModule,
|
|
EventModule,
|
|
],
|
|
})
|
|
export class AppModule {}
|