nestjs-microservices
├─ .dockerignore
├─ .editorconfig
├─ .nx
├─ .prettierignore
├─ .prettierrc
├─ apps
│ ├─ consumer-service
│ │ ├─ .spec.swcrc
│ │ ├─ eslint.config.mjs
│ │ ├─ jest.config.cts
│ │ ├─ package.json
│ │ ├─ src
│ │ │ ├─ app.module.ts
│ │ │ ├─ dto
│ │ │ │ └─ order-created.dto.ts
│ │ │ ├─ handlers
│ │ │ │ ├─ order-created.handler.spec.ts
│ │ │ │ └─ order-created.handler.ts
│ │ │ └─ main.ts
│ │ ├─ tsconfig.app.json
│ │ ├─ tsconfig.json
│ │ ├─ tsconfig.spec.json
│ │ └─ webpack.config.js
│ ├─ consumer-service-e2e
│ │ ├─ .spec.swcrc
│ │ ├─ eslint.config.mjs
│ │ ├─ jest.config.cts
│ │ ├─ package.json
│ │ ├─ src
│ │ │ ├─ consumer-service
│ │ │ │ └─ consumer-service.spec.ts
│ │ │ └─ support
│ │ │ ├─ global-setup.ts
│ │ │ ├─ global-teardown.ts
│ │ │ └─ test-setup.ts
│ │ └─ tsconfig.json
│ ├─ dlq-logger-service
│ │ ├─ .spec.swcrc
│ │ ├─ eslint.config.mjs
│ │ ├─ jest.config.cts
│ │ ├─ package.json
│ │ ├─ src
│ │ │ ├─ app.module.ts
│ │ │ ├─ handlers
│ │ │ │ └─ dlq.handler.ts
│ │ │ └─ main.ts
│ │ ├─ tsconfig.app.json
│ │ ├─ tsconfig.json
│ │ ├─ tsconfig.spec.json
│ │ └─ webpack.config.js
│ ├─ dlq-logger-service-e2e
│ │ ├─ .spec.swcrc
│ │ ├─ eslint.config.mjs
│ │ ├─ jest.config.cts
│ │ ├─ package.json
│ │ ├─ src
│ │ │ ├─ dlq-logger-service
│ │ │ │ └─ dlq-logger-service.spec.ts
│ │ │ └─ support
│ │ │ ├─ global-setup.ts
│ │ │ ├─ global-teardown.ts
│ │ │ └─ test-setup.ts
│ │ └─ tsconfig.json
│ ├─ notification-service
│ │ ├─ .spec.swcrc
│ │ ├─ eslint.config.mjs
│ │ ├─ jest.config.cts
│ │ ├─ package.json
│ │ ├─ src
│ │ │ ├─ adapters
│ │ │ │ └─ telegram.adapter.ts
│ │ │ ├─ app.module.ts
│ │ │ ├─ dto
│ │ │ │ └─ notify-telegram.dto.ts
│ │ │ ├─ handlers
│ │ │ │ ├─ notify-telegram.handler.spec.ts
│ │ │ │ └─ notify-telegram.handler.ts
│ │ │ ├─ main.ts
│ │ │ ├─ rate-limiter
│ │ │ │ └─ redis-limiter.service.ts
│ │ │ └─ workers
│ │ │ └─ telegram.worker.ts
│ │ ├─ tsconfig.app.json
│ │ ├─ tsconfig.json
│ │ ├─ tsconfig.spec.json
│ │ └─ webpack.config.js
│ ├─ notification-service-e2e
│ │ ├─ .spec.swcrc
│ │ ├─ eslint.config.mjs
│ │ ├─ jest.config.cts
│ │ ├─ package.json
│ │ ├─ src
│ │ │ ├─ notification-service
│ │ │ │ └─ notification-service.spec.ts
│ │ │ └─ support
│ │ │ ├─ global-setup.ts
│ │ │ ├─ global-teardown.ts
│ │ │ └─ test-setup.ts
│ │ └─ tsconfig.json
│ ├─ producer-service
│ │ ├─ .spec.swcrc
│ │ ├─ eslint.config.mjs
│ │ ├─ jest.config.cts
│ │ ├─ package.json
│ │ ├─ src
│ │ │ ├─ app.module.ts
│ │ │ ├─ main.ts
│ │ │ └─ orders
│ │ │ ├─ orders.controller.ts
│ │ │ ├─ orders.service.spec.ts
│ │ │ ├─ orders.service.ts
│ │ │ └─ outbox-cleanup.service.ts
│ │ ├─ tsconfig.app.json
│ │ ├─ tsconfig.json
│ │ ├─ tsconfig.spec.json
│ │ └─ webpack.config.js
│ └─ producer-service-e2e
│ ├─ .spec.swcrc
│ ├─ eslint.config.mjs
│ ├─ jest.config.cts
│ ├─ package.json
│ ├─ src
│ │ ├─ producer-service
│ │ │ └─ producer-service.spec.ts
│ │ └─ support
│ │ ├─ global-setup.ts
│ │ ├─ global-teardown.ts
│ │ └─ test-setup.ts
│ └─ tsconfig.json
├─ compose.yaml
├─ debezium-conf
│ └─ application.properties
├─ Dockerfile
├─ entrypoint.sh
├─ eslint.config.mjs
├─ init-db.sql
├─ jest.config.ts
├─ jest.preset.js
├─ libs
│ ├─ idempotency
│ │ ├─ .spec.swcrc
│ │ ├─ eslint.config.mjs
│ │ ├─ jest.config.cts
│ │ ├─ package.json
│ │ ├─ README.md
│ │ ├─ src
│ │ │ ├─ index.ts
│ │ │ └─ lib
│ │ │ ├─ idempotency.module.ts
│ │ │ └─ idempotency.service.ts
│ │ ├─ tsconfig.json
│ │ ├─ tsconfig.lib.json
│ │ └─ tsconfig.spec.json
│ ├─ infra-pg
│ │ ├─ .spec.swcrc
│ │ ├─ eslint.config.mjs
│ │ ├─ jest.config.cts
│ │ ├─ package.json
│ │ ├─ README.md
│ │ ├─ src
│ │ │ ├─ index.ts
│ │ │ └─ lib
│ │ │ └─ infra-pg.module.ts
│ │ ├─ tsconfig.json
│ │ ├─ tsconfig.lib.json
│ │ └─ tsconfig.spec.json
│ ├─ infra-rmq
│ │ ├─ .spec.swcrc
│ │ ├─ eslint.config.mjs
│ │ ├─ jest.config.cts
│ │ ├─ package.json
│ │ ├─ README.md
│ │ ├─ src
│ │ │ ├─ index.ts
│ │ │ └─ lib
│ │ │ ├─ constants.ts
│ │ │ └─ infra-rmq.module.ts
│ │ ├─ tsconfig.json
│ │ ├─ tsconfig.lib.json
│ │ └─ tsconfig.spec.json
│ └─ outbox
│ ├─ .spec.swcrc
│ ├─ eslint.config.mjs
│ ├─ jest.config.cts
│ ├─ package.json
│ ├─ README.md
│ ├─ src
│ │ ├─ index.ts
│ │ └─ lib
│ │ ├─ interfaces.ts
│ │ ├─ outbox.module.ts
│ │ └─ outbox.repository.ts
│ ├─ tsconfig.json
│ ├─ tsconfig.lib.json
│ └─ tsconfig.spec.json
├─ nx.json
├─ package.json
├─ pnpm-lock.yaml
├─ pnpm-workspace.yaml
├─ project-structure.md
├─ README.md
├─ tsconfig.base.json
└─ tsconfig.json