refactor(shared-ts,iam,core-edu,content,msg): remove outbox polling publisher
M8: Debezium CDC now handles outbox table to Kafka (ADR-032) - Remove OutboxPublisher class from shared-ts - Remove publisher from iam/core-edu/content/msg lifecycle and modules - OutboxService retained for transactional outbox table writes - Debezium monitors binlog and pushes to Kafka automatically
This commit is contained in:
@@ -3,7 +3,6 @@ import { AppModule } from "./app.module.js";
|
||||
import { env } from "./config/env.js";
|
||||
import { connectKafka, disconnectKafka } from "./config/kafka.js";
|
||||
import { connectRedis, disconnectRedis } from "./config/redis.js";
|
||||
import { outboxPublisher } from "./shared/outbox/outbox.publisher.js";
|
||||
import { GlobalErrorFilter } from "./shared/errors/global-error.filter.js";
|
||||
import { initTracer, shutdownTracer } from "./shared/observability/tracer.js";
|
||||
import { logger } from "./shared/observability/logger.js";
|
||||
@@ -24,9 +23,9 @@ async function bootstrap(): Promise<void> {
|
||||
res.end(await registry.metrics());
|
||||
});
|
||||
|
||||
// Connect Kafka producer/consumer before starting the outbox publisher.
|
||||
// Non-blocking: if Kafka is unavailable, service still starts; outbox
|
||||
// publisher will retry sends and messages stay pending until Kafka recovers.
|
||||
// Connect Kafka producer/consumer.
|
||||
// Non-blocking: if Kafka is unavailable, service still starts.
|
||||
// v2.1(M8):OutboxPublisher 轮询线程已移除,outbox 投递由 Debezium CDC 接管。
|
||||
void connectKafka();
|
||||
|
||||
// Connect Redis for distributed lock (homework submission idempotency).
|
||||
@@ -34,10 +33,6 @@ async function bootstrap(): Promise<void> {
|
||||
// operations will fall back to DB unique index for idempotency.
|
||||
void connectRedis();
|
||||
|
||||
// Start the transactional outbox publisher - polls pending messages
|
||||
// and publishes them to Kafka topics defined in TOPIC_MAP.
|
||||
await outboxPublisher.start();
|
||||
|
||||
await app.listen(env.PORT);
|
||||
|
||||
// 启动 gRPC server(9 Service / 40 RPC)
|
||||
@@ -51,7 +46,6 @@ async function bootstrap(): Promise<void> {
|
||||
const shutdown = async (signal: string): Promise<void> => {
|
||||
logger.info({ signal }, "Shutting down gracefully...");
|
||||
await stopGrpcServer();
|
||||
await outboxPublisher.stop();
|
||||
await disconnectRedis();
|
||||
await disconnectKafka();
|
||||
await shutdownTracer();
|
||||
|
||||
Reference in New Issue
Block a user