agentsclimarketplace

Nestjs transport

Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/nestjs-transport

gRPC, RabbitMQ standards and Monorepo contracts. Use when implementing gRPC microservices, RabbitMQ messaging, or monorepo transport in NestJS. (triggers: main.ts, **/*.controller.ts, Transport.GRPC, Transport.RMQ, MicroserviceOptions)From its SKILL.md

Install
npx -y skills add ComeOnOliver/skillshub --skill nestjs-transport

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

2.1 KB, 432 tokens by cl100k_base, as published. Nobody here has run it

Microservices & Transport Standards

Priority: P0 (FOUNDATIONAL)

Microservices communication patterns and transport layer standards.

  • Synchronous (RPC): Use gRPC for low-latency, internal service-to-service calls.
    • Why: 10x faster than REST/JSON, centralized .proto contracts.
  • Asynchronous (Events): Use RabbitMQ or Kafka for decoupling domains.
    • Pattern: Fire-and-forget (emit()) for side effects (e.g., "UserCreated" -> "SendEmail").

Monorepo Architecture

  • Contracts:
    • Pattern: Store all DTOs, .proto files, and Interfaces in a Shared Library (libs/contracts).
    • Rule: Services never import code from other services. They only import from contracts.
  • Versioning: Semantic versioning of messages is mandatory. Never change a field type; add a new field.

Exception Handling

  • Propagation: Standard HttpException is lost over Rpc/Tcp.

  • Standard: Use RpcException and generic Filters.

    // Global RPC Filter
    @Catch()
    export class RpcExceptionFilter implements RpcExceptionFilter<RpcException> {
      catch(exception: RpcException, host: ArgumentsHost): Observable<any> {
        return throwError(() => exception.getError());
      }
    }
    

Serialization

  • Message DTOs: Use class-validator just like HTTP.
    • Config: Apply useGlobalPipes(new ValidationPipe({ transform: true })) in the MicroserviceOptions setup, not just HTTP app setup.

Anti-Patterns

  • No cross-service imports: Services must import only from libs/contracts, never from sibling services.
  • No HttpException in RPC: Use RpcException with a global RpcExceptionFilter for microservice errors.
  • No unversioned message schema: Add new fields; never change existing field types — consumers will break.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.