# @application-kit/transaction-outbox 中文文档

规范地址：https://npmcn.com/package/%40application-kit/transaction-outbox/

版本：0\.4\.1
npm 元数据更新时间：2026-11-05T01:42:24.676Z
中文译文更新时间：2026-11-06T23:01:12.001Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40application-kit/transaction-outbox
原文对照：https://npmcn.com/package/%40application-kit/transaction-outbox/?lang=original
项目主页：https://gitlab.com/application-kit/application-kit/-/tree/main/packages/transaction-outbox
源码仓库：https://gitlab.com/application-kit/application-kit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：67.8 kB，97 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=24
- 运行依赖：2 个
- peer 依赖：typeorm ^1\.0\.0，oxide\.ts ^1\.1\.0，nestjs-pino ^4\.6\.1，@nestjs/core ^11\.0\.0，@nestjs/common ^11\.0\.0，@nestjs/typeorm ^11\.0\.3 \|\| ^12\.0\.0，@libs-for-dev/nestjs-ddd-library ^1\.4\.0
- 首次发布：2026-10-06T12:09:10.466Z
- 最新版本发布：2026-11-05T01:42:24.484Z
- 近 30 天下载量：2198（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：10（近 12 个月 10 个）

## 中文简介

交易收发箱 QQ TypeORM: QQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

## 安装

```sh
npm install @application-kit/transaction-outbox
```

也可以使用：`pnpm add @application-kit/transaction-outbox`、`yarn add @application-kit/transaction-outbox`、`bun add @application-kit/transaction-outbox`

## README

# @ application- kit/ 切换出局

交易收发箱 QQ TypeORM \\ NestJS : # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ## # # # # # ## # # # #### ### `transaction_outboxes` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你应该知道 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你是谁 {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 `queue_name` 卡夫卡(英语:Event Router, `route.by.field: queue_name`) (中文(简体) ).

## Установка

```sh
yarn add @application-kit/transaction-outbox
```

对等者 : `@application-kit/kafka` 页:1 `/event-contract`, (中文(简体) ), `@application-kit/typeorm`, (中文(简体) ), `@libs-for-dev/nestjs-ddd-library`, (中文(简体) ), `@nestjs/common`, (中文(简体) ), `@nestjs/core`, (中文(简体) ), `@nestjs/typeorm`, (中文(简体) ), `nestjs-pino`, (中文(简体) ), `oxide.ts`, (中文(简体) ), `typeorm`。 。 。 . `kafkajs` и `@nestjs/microservices` не:пакет也 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得呢.

## Подключение

\- Приложение,из: `TransactionOutboxModule` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得呢.

```ts
import {
  TRANSACTION_OUTBOX_LOGGER,
  TRANSACTION_OUTBOX_REQUEST_FACTS,
  TransactionOutboxLogger,
} from '@application-kit/transaction-outbox'

@Global()
@Module({
  exports: [TRANSACTION_OUTBOX_LOGGER, TRANSACTION_OUTBOX_REQUEST_FACTS],
  providers: [
    { provide: TRANSACTION_OUTBOX_LOGGER, useClass: TransactionOutboxLogger },
    { provide: TRANSACTION_OUTBOX_REQUEST_FACTS, useValue: () => ({ ip: currentIp() }) },
  ],
})
class CommonModule {}
```

-   `TRANSACTION_OUTBOX_LOGGER` любой класс `error(context, message)`· ; `TransactionOutboxLogger` —— 说 реализация `nestjs-pino` (нужен `LoggerModule`) (中文(简体) ).
-   `TRANSACTION_OUTBOX_REQUEST_FACTS` ——обогащения:функция也 ложится в `payload.facts` событий `carriesRequestFacts: true`。 。 。 。 . QQ 用户代理QQ `resolveRequestFacts` из `@application-kit/observability/http`; текущий {\\fn黑体\\fs20\\shad2\\2ah82\\3ah20\\4ah33\\fscx95\\3ch592001\\be1}♪#################################################################################################################################################################################################################################### `AsyncLocalStorage`。 。 。 . Хук:него也 `carriesRequestFacts` пишутся `facts`。 。 。 .

## Запись

```ts
const result = await outbox.save([new UserWasCreatedEvent({ id })], async () => {
  return repository.save(user)
})
```

Колбэк:это也, `save` отвечает `Ok(true)`。 。 。 . `Result` нужен, ? когда.

{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得怎样. `Err` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得呢 {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 значением. `save` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得呢 `save` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得呢. Репозитории,которые也 `TransactionAwareTypeOrmModule.forFeature([...])` вместо `TypeOrmModule.forFeature`。 。 。 .

## Версия

{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 `versionedQueueName(queueName, eventVersion)` из `@application-kit/kafka/event-contract`? ? ? ? ? 吗 `<queue>.v<N>`。 。 。 . Базовый `AbstractSingleIdOutboxEvent` фиксирует `1`。 。 。 .

## Миграция

Пакет `orm` . . . . . `TransactionOutboxEntity` и и `TransactionOutbox1734780489810` классами:передайте也 `packages` qQ CLI 数据来源. {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 `migrations` {\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得怎么样.

```ts
import { orm as outboxOrm } from '@application-kit/transaction-outbox'

createCliDataSource({ ..., packages: [outboxOrm] }) // @application-kit/typeorm/nest
```

## Тесты

```ts
import { TransactionOutboxFake } from '@application-kit/transaction-outbox/testing'

const outbox = new TransactionOutboxFake(logger)
await service.run()
expect(outbox.events.size).toBe(1)
```

{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}你觉得呢 `events` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你应该知道 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你是谁 `Err` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}你觉得呢.

## 常见问题

### @application-kit/transaction-outbox 是什么？

交易收发箱 QQ TypeORM: QQ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+ \+

### 如何安装 @application-kit/transaction-outbox？

在项目目录运行 npm install @application-kit/transaction-outbox，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：typeorm（^1\.0\.0）、oxide\.ts（^1\.1\.0）、nestjs-pino（^4\.6\.1）、@nestjs/core（^11\.0\.0）、@nestjs/common（^11\.0\.0）、@nestjs/typeorm（^11\.0\.3 \|\| ^12\.0\.0）、@libs-for-dev/nestjs-ddd-library（^1\.4\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @application-kit/transaction-outbox 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @application-kit/transaction-outbox 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @application-kit/transaction-outbox 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=24。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @application-kit/transaction-outbox 可以商用吗？

@application-kit/transaction-outbox 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @application-kit/transaction-outbox 的下载量有多少？

根据 npm 官方下载统计，@application-kit/transaction-outbox 在 2026/10/07 – 2026/11/05 这 30 天内被下载 2,198 次，日均约 73 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @application-kit/transaction-outbox 还在维护吗？

最新版本 0\.4\.1 发布于 2026/11/05（2 天前）；至今共发布 10 个版本，其中过去 12 个月发布了 10 个；首次发布于 2026/10/06。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

