🐇

AMQP Exchange Configuration Simulator — Map Routing Keys and Queue Bindings

Generate RabbitMQ channel declaration code for Node.js (amqplib) and Python (pika). Select an exchange type, configure durability and options, add queue bindings with routing keys, and instantly get production-ready assertExchange and bindQueue calls. Supports all four exchange types: direct, fanout, topic, and headers. Four presets cover the most common RabbitMQ patterns. Free and runs entirely in your browser.

API ToolsAPI & Backend
Loading tool...

How to Use AMQP Exchange Configuration Simulator — Map Routing Keys and Queue Bindings

How to Use the AMQP Exchange Config Builder:

  1. Load a Preset (Optional): Click any preset to pre-fill all fields with a common RabbitMQ pattern. Task queue shows a direct exchange routing messages to two queues by routing key. Pub/Sub broadcast shows a fanout exchange delivering to all bound queues simultaneously. Log routing demonstrates a topic exchange with wildcard patterns. Dead letter shows an internal direct exchange for failed messages. All presets are editable after loading.

  2. Enter an Exchange Name: Type the name of the exchange to declare. Exchange names are arbitrary strings — common conventions use lowercase with hyphens or dots (tasks, payments.events, user.notifications). Spaces are not allowed.

  3. Select the Exchange Type: Choose from four types. Direct routes messages to queues whose binding key exactly matches the message routing key — ideal for task queues and targeted dispatch. Fanout ignores routing keys entirely and broadcasts every message to all bound queues — ideal for pub/sub and fan-out notification systems. Topic routes by routing key pattern using * (matches exactly one word) and # (matches zero or more words) — ideal for event-driven log routing and multi-tenant systems. Headers routes based on message header attributes instead of routing key — useful when routing logic depends on message metadata.

  4. Set Exchange Options: Durable means the exchange survives a broker restart — use this for production exchanges. Auto-delete removes the exchange automatically when the last queue unbinds from it — useful for temporary or session-scoped exchanges. Internal means the exchange can only receive messages forwarded from other exchanges, not from publishers directly — used in exchange-to-exchange routing and dead-letter configurations.

  5. Add Queue Bindings: Each binding declares a queue and binds it to the exchange. Enter the queue name and routing key for each binding. For fanout exchanges, the routing key is ignored and left blank automatically. For topic exchanges, use * to match a single word segment and # to match zero or more segments. Queue options: Durable means the queue survives a broker restart. Exclusive means the queue is tied to the connection that declared it and deleted when the connection closes. Auto-delete removes the queue when the last consumer disconnects. Click Add to add up to five bindings.

  6. Choose a Language: Toggle between Node.js and Python to switch the output language. The Node.js output uses amqplib with async/await. The Python output uses pika's BlockingConnection API.

  7. Copy and Use the Code: Click Copy to copy the full setup function to the clipboard. Paste it into your project and replace the amqp://localhost connection string with your actual broker URL. The generated code declares the exchange and all bound queues — run it once during application startup or as a separate setup script.

Common Use Cases:

  • New RabbitMQ integration: Scaffold the exchange and queue declarations for a new service without writing boilerplate from memory.
  • Architecture documentation: Use the presets as visual references to compare exchange types when planning a message-driven system.
  • Multi-language teams: Generate the same topology in both Node.js and Python to ensure both services declare identical exchanges and queues.
  • Dead letter exchange setup: Use the Dead letter preset as a starting point for configuring DLX routing in an existing queue topology.
  • Topic routing design: Test routing key patterns in the topic preset to verify that * and # wildcards match the queue you expect before deploying.

Tips and Best Practices:

  • Always declare exchanges and queues as durable in production. Non-durable exchanges and queues are lost on broker restart and can cause message loss.
  • Declare the same exchange from both producer and consumer code. RabbitMQ is idempotent for declarations with matching parameters, so duplicate declarations are safe.
  • For topic exchanges, use a consistent dot-separated routing key convention: service.entity.event (e.g., payments.invoice.created). This makes wildcard patterns predictable.
  • An exclusive queue is deleted when its connection closes — use it only for temporary reply queues in request-reply (RPC) patterns.
  • The internal option is for exchange-to-exchange routing. If you need a dead-letter exchange that publishers cannot accidentally send to, mark it as internal.

Frequently Asked Questions

Most Viewed Tools

📺

Screen Size Converter — Diagonal Dimension Tool

6,033 views

Calculate screen width and height from diagonal size and aspect ratio. Convert between inches and centimeters for displays, TVs, and monitors with instant dimension calculations.

Use Tool →
🖨️

DPI Calculator — Print Resolution Tool

3,958 views

Calculate DPI (dots per inch), image dimensions, and print sizes. Convert between pixels and physical dimensions for printing and displays.

Use Tool →
🔐

TOTP Code Generator — 2FA Testing Tool

3,625 views

Generate time-based one-time passwords from a TOTP secret key. Enter your base32 secret, choose a period and digit length, and get the current and next codes with a live countdown timer. Useful for testing and debugging 2FA integrations.

Use Tool →
{}

JSONL Formatter — Line-by-Line Validator

3,618 views

Format, validate, and inspect JSON Lines (JSONL) and NDJSON files. Validates each line individually, reports parse errors by line number, outputs compact JSONL or a pretty-print preview, and lets you download the cleaned file.

Use Tool →
{ }

JSON to Zod — Schema Generator

3,501 views

Generate Zod validation schema code from a JSON sample object. Infers z.string(), z.number(), z.boolean(), z.array(), z.object(), and z.null() types automatically. Handles nested objects, arrays of objects with optional field detection, and outputs copy-ready TypeScript with import and z.infer type alias.

Use Tool →
🔑

Password Entropy Calculator — Crack Time Estimator

3,301 views

Calculate the information-theoretic bit entropy of any password or API key. Detects character set pools automatically, shows the total number of possible combinations, and estimates crack time across five attack scenarios from rate-limited web logins to GPU cracking clusters.

Use Tool →
🔐

TLS Cipher Suite Checker — Strength Analyzer

3,291 views

Check TLS protocol version compatibility and cipher suite strength ratings against current best practices. Supports IANA and OpenSSL cipher names — rates each suite as Strong, Weak, or Deprecated and explains why.

Use Tool →
🔍

Secret Scanner — API Key & Credential Detector

3,024 views

Scan pasted text, code, or config files for accidentally exposed API keys, tokens, passwords, and private keys. Detects 50+ secret types across AWS, GitHub, Stripe, OpenAI, and more — all client-side, nothing leaves your browser.

Use Tool →

Related API & Backend Tools

GraphQL Subscription Builder — Generate WebSocket Payloads and Client Queries

Build GraphQL subscription query strings and generate WebSocket connection code snippets for Apollo Client, urql, and graphql-ws. Define your operation name, variables, and selection fields visually, then copy the ready-to-use code.

Use Tool →
🚦

API Gateway Rate Limiting Calculator — Model RPS, Burst, and Token Buckets

Calculate token bucket size and refill rate from RPS targets for API gateway throttling. Enter your steady-state requests per second, burst multiplier, and average response time — the calculator outputs the bucket capacity, refill rate, per-minute and per-hour quotas, and concurrent connection estimate. Generates ready-to-paste throttling config for AWS API Gateway, Kong, and Nginx. Free and runs entirely in your browser.

Use Tool →
📨

JSON-RPC Builder — Compose and Validate JSON-RPC 2.0 Payloads

Build and validate JSON-RPC 2.0 request and notification payloads with method and params. Fill in the method name, optional params (named or positional), and an id — the tool validates the input against the JSON-RPC 2.0 specification and outputs a formatted payload plus a ready-to-run curl command. Supports requests, fire-and-forget notifications, and batch arrays. Five presets cover the most common patterns. Free and runs entirely in your browser.

Use Tool →
📝

REST Endpoint Documenter — Markdown Doc Generator

Document a REST endpoint quickly by entering the URL, method, headers, and sample request/response. Generates formatted Markdown documentation and an example cURL command instantly.

Use Tool →
🔍

API Error Decoder — Fix Suggestion Tool

Decode HTTP status codes and OAuth 2.0 error strings with plain-English descriptions, common causes, and actionable fix suggestions. Covers every HTTP 1xx–5xx status code and all standard OAuth 2.0 error responses. Results appear instantly as you type.

Use Tool →
📊

GraphQL Cost Estimator — Analyze Query Complexity and Depth

Assign custom field weights to a GraphQL schema and calculate the total query complexity score. Paste any GraphQL query, configure per-field costs, and get a per-field breakdown table showing depth, multipliers, and cumulative cost.

Use Tool →
⏱️

API Latency Budget Calculator — Plan Distributed System Performance

Set a P99 SLO latency target and distribute the budget across your upstream service dependencies. See remaining headroom, utilization percentage, a stacked allocation bar, and a per-service breakdown with optional P99 actual measurements.

Use Tool →
📋

API Changelog Generator — Automatically Detect Breaking Changes and Write Release Notes

Convert API change descriptions into structured Keep-a-Changelog format. Enter a version, date, and one change per line prefixed with its type (added, changed, deprecated, removed, fixed, or security). The tool instantly groups them into the canonical section order and outputs a ready-to-paste CHANGELOG.md block. Supports four real-world presets for REST API releases, breaking changes, patch releases, and unreleased work. Free and runs entirely in your browser.

Use Tool →

Share Your Feedback

Help us improve this tool by sharing your experience

We will only use this to follow up on your feedback