asyncapi-nats-design

Design tenant-aware AsyncAPI and NATS JetStream messaging with per-service streams.

1|Updated Apr 17, 2026
One-click install
npx skills add https://github.com/PremModhaOfficial/motadata-ai-pipeline --skill asyncapi-nats-design
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: asyncapi-nats-design
Source: https://github.com/PremModhaOfficial/motadata-ai-pipeline/tree/main/.claude/skills/asyncapi-nats-design
Command: npx skills add https://github.com/PremModhaOfficial/motadata-ai-pipeline --skill asyncapi-nats-design

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Manage and standardize inter-service communication in a multi-tenant microservice platform by enforcing a JetStream-only NATS pattern, inclusive of AsyncAPI specs, subject naming, streams, and dead-letter handling.

Core Features & Use Cases

  • Centralized, per-service stream definitions with auto-creation on startup.
  • Subject naming conventions and per-tenant isolation for events and requests.
  • AsyncAPI-driven contract for request-reply channels and event streams; CloudEvents envelope usage.

Quick Start

Configure a per-service AsyncAPI specification that defines tenant-scoped subjects and enable automatic per-service JetStream stream creation at startup.

Frequently Asked Questions about asyncapi-nats-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I design tenant-aware messaging in microservices using NATS JetStream?

You design tenant-aware messaging by enforcing per-service JetStream streams, tenant-scoped subject naming hierarchies, and queue-based consumers to ensure isolated, scalable inter-service communication.

What is the best way to structure AsyncAPI specifications for multi-tenant NATS?

The best way is configuring a per-service AsyncAPI specification that defines request-reply channels and event streams using tenant-scoped subjects and CloudEvents envelopes for standardized messaging.

How does dead-letter handling work for JetStream microservices?

Dead-letter handling in JetStream microservices involves strict transport rules and per-service stream definitions that capture failed messages, ensuring safe processing and scalable event routing.

Can I use Core NATS for inter-service communication in a multi-tenant architecture?

No, this approach enforces strict JetStream-only transport rules, utilizing per-service streams and auto-creation on startup rather than Core NATS, to guarantee safe and durable messaging.

How do I ensure idempotency in NATS JetStream request-reply flows?

Idempotency in NATS JetStream request-reply flows is managed by using CloudEvents envelopes and strict per-service stream definitions, which enforce safe, repeatable message processing across tenants.

When do I need per-service stream auto-creation in NATS?

Per-service stream auto-creation is needed when standardizing multi-tenant microservice platforms, ensuring each service dynamically provisions its own JetStream streams at startup for isolated messaging.