Overview
What is its Purpose?
What is its Purpose?
AMQP Message Publishing
High Availability
Flexible Message Format
Secure Messaging
Working Principle
Working Principle
Connection Initiation
Connection Pool Management
Authentication
Data Communication
Connection Management
Error Management
Usage Areas
Usage Areas
Log and Audit
Event Triggering
Microservice Messaging
Managed RabbitMQ Integration
Technical Features and Capabilities
Basic Features
Basic Features
Multiple Host/Port Definition
Virtual Host Management
AMQP Basic Properties Template
Environment-Based Configuration
Enable/Disable Control
Advanced Features
Advanced Features
Authentication Toggle
SSL/TLS Protocol Selection
Heartbeat and Channel Limits
Connection Test Feature
Export/Import Feature
Connection Monitoring
Connection Parameters
Mandatory Parameters
Mandatory Parameters
Name
Example Value:
Production_RabbitMQNotes: Should not start with space, special characters should not be used
Host/Port List
Example Value:
mq1.internal.local:5672Notes: At least one row is mandatory; host and port must be filled in all rows
Connection Factory Virtual Host
Example Value:
/apinizerNotes: Must match the vhost name in RabbitMQ management console
Connection Factory Connection Timeout
Example Value:
60000Notes: In ms; value 0 means unlimited wait
Requested Channel Max
Example Value:
2047Notes: Should not exceed broker limit
Requested Frame Max
Example Value:
0Notes: Value 0 uses broker default
Requested Heartbeat
Example Value:
60Notes: In seconds; 0 -> heartbeat disabled
Channel Routing Key
Example Value:
apinizer.audit.queueNotes: Recommended to keep same as queue name
Basic Properties AppId
Example Value:
apinizerNotes: Can be tracked in API logs
Basic Properties ContentType
Example Value:
application/jsonNotes: Values such as application/xml are supported
Basic Properties ContentEncoding
Example Value:
UTF-8Notes: Broker and consumer must use the same encoding
Basic Properties DeliveryMode
Example Value:
2Notes: Must select 2 for persistence
Basic Properties Priority
Example Value:
5Notes: Queue priority must be enabled
Basic Properties ReplyTo
Example Value:
apinizer.replyNotes: Mandatory in Request/Reply patterns
Basic Properties Expiration
Example Value:
60000Notes: Should not exceed queue policy
Basic Properties Type
Example Value:
apinizer-log-typeNotes: Used for filtering in consumer
Basic Properties UserId
Example Value:
guestNotes: Broker verifies if Authentication is enabled
Basic Properties ClusterId
Example Value:
cluster-eu-centralNotes: Used in cluster observability reports
Optional Parameters
Optional Parameters
Description
Default Value: -
Recommended Value: Specify process or project name
Channel Exchange
Default Value: ""
Recommended Value: apinizer.audit.exchange
Authentication Enabled
Default Value: false
Recommended Value: true in Production environment
Connection Factory Username
Default Value: guest
Recommended Value: Use a separate service account
Connection Factory Password
Default Value: guest
Recommended Value: Strong password managed through Secret Manager
Connection Factory Use SSL Protocol
Default Value: false
Recommended Value: true in Production
Connection Factory SSL Protocol
Default Value: TLSv1.2
Recommended Value: TLSv1.3 according to broker support
Channel Exchange Binding
Default Value: -
Recommended Value: Keep environment-based table
Timeout and Connection Pool Parameters
Connection Timeout
Default: 60000 ms
Min: 1000 ms | Max: 300000 ms
Request Timeout
Default: 30000 ms
Min: 5000 ms | Max: 120000 ms
Pool Size
Default: 10
Min: 1 | Max: 100
Heartbeat Interval
Default: 60 seconds
Min: 0 | Max: 300 seconds
Usage Scenarios
Log Streaming
Solution: channelRoutingKey=apinizer.logs, deliveryMode=2
Expected Result: All log messages are collected in persistent queue
Audit Trail
Solution: basicPropertiesType=audit, SSL enabled
Expected Result: Secure audit messages reach consumer service
Event Fan-out
Solution: channelExchange=apinizer.events, topic exchange
Expected Result: All subscribers receive messages according to routing key pattern
Failover Cluster
Solution: Adding at least 3 nodes to hostPortList
Expected Result: Connection automatically switches to another node
Long Queue TTL
Solution: basicPropertiesExpiration=120000, lowering priority
Expected Result: Messages are automatically deleted after 2 minutes
Low Latency Jobs
Solution: connectionFactoryRequestedHeartbeat=30, pool size=20
Expected Result: Latency decreases, throughput increases
Connection Configuration
Creating New RabbitMQ Connection

Navigate to Creation Page
Enter Basic Information
Production_RabbitMQ- Enter a unique name, should not start with space.
- System automatically checks. Green checkmark: available. Red cross: existing name.
- Max. 1000 characters.
- Describe the purpose of the Connection.
Environment Selection
Host and Virtual Host Parameters
Channel and Message Parameters
Timeout and Connection Pool Settings
Security and Authentication Settings
Test Connection
Saving
- Connection is added to the list.
- Becomes available for use in Integration Flow and Connector steps.
-
Becomes active according to environment.
Connection created successfully! You can now use it in Integration Flow and Connector steps.
Deleting Connection
Deletion Process
Deletion Tips
Alternative: Deactivation
Exporting/Importing Connection
Export
Export
Method 1
Method 2
File Format
Date-connection-ConnectionName-export.zipExample:
13 Nov 2025-connection-Production_RabbitMQ-export.zipZIP Contents
- Connection JSON file
- Metadata information
- Dependency information (e.g., certificates, key store)
Usage Areas
- Backup
- Transfer between environments (Test → Prod)
- Versioning
- Team or project-based sharing
Import
Import
Import Steps
- Click the [Import RabbitMQ Connection] button on the main list.
- Select the downloaded ZIP file.
- System checks: Is format valid? Is there a name conflict? Are dependencies present?
- Then click the [Import] button.
Import Scenarios
Usage Areas of Connection
Creating and Activating Connection
- Create the Connection
- Validate the connection with Test Connection
- Save and activate with Save and Deploy
- Ensure the Connection is in Enabled status
Usage in Integration / Connector Steps
Scheduled Job Usage
Usage for Testing Purposes
Best Practices
Things to Do and Best Practices
Things to Do and Best Practices
Cluster Reachability
Good: Adding two hosts
Best: Adding all broker nodes to hostPortList and ordering according to health check results
Routing Key Management
Good: Using queue name as routing key
Best: Naming in
domain.context.event format to provide maintenance easeMessage TTL Strategy
Good: Defining default 60 seconds
Best: Creating environment-based TTL sets according to business requirements
Authentication Strategy
guest/guest credentials in all environmentsGood: Creating different user for Production
Best: Applying service accounts with only necessary permissions and secret rotation policy
Environment Management
Good: Creating separate connections for each environment
Best: Managing all environments in a single connection using the Environment option, only changing environment when transitioning between environments
Connection Test
Good: Validating with Test Connection before saving
Best: Testing after every parameter change, performing full integration test in test environment before going to production
Security Best Practices
Security Best Practices
RabbitMQ User Permissions
AMQP Certificate Management
Audit and Logging
Credential Management
SSL/TLS Usage
Access Control
Things to Avoid
Things to Avoid
Overloading Single Queue
Alternative: Define different routing keys according to message type
Setting Heartbeat to 0
Alternative: Use at least 30-second heartbeat
Sharing SSL Certificate
Alternative: Use separate certificate/credential for each environment
Using Production Connection in Test Environment
Alternative: Create separate connections for each environment, use environment parameter, separate connection names by adding prefix according to environment (Test_, Prod_)
Very Low Timeout Values
Alternative: Adjust timeout values according to real usage scenarios, measure network latency and determine timeouts accordingly
Not Using Connection Pool
Alternative: Enable connection pool, adjust pool size according to traffic volume, set up pool monitoring
Performance Tips
Performance Tips
Message Size Management
Effect: Risk of hitting FrameMax limit decreases, throughput increases
Routing Key Templates
service.region.event patternEffect: Consumers easily filter with pattern, subscription count decreases
Heartbeat Setting
Effect: Drops are quickly detected, unnecessary reconnect is prevented
Connection Pool Optimization
Effect: Connection opening cost decreases by 80%, response times decrease, resource usage is optimized
Timeout Values Optimization
Effect: Unnecessary waits are prevented, fast fail-over is provided, user experience improves
Connection Monitoring
Effect: Problems are detected proactively, performance bottlenecks are identified early, downtime decreases
Troubleshooting
Message Rejected by Broker
Message Rejected by Broker
Exchange/Queue Binding
Routing Key Test
User Permissions
SSL Handshake Failure
SSL Handshake Failure
TLS Version
Certificate Loading
CA-Signed Certificate
Connection Timeout
Connection Timeout
Network Check
System Health
Timeout Settings
Log Review
Authentication Failed
Authentication Failed
Credentials
User Status
Permission Check
Certificate Check
Pool Exhausted
Pool Exhausted
Pool Size
Connection Check
Idle Timeout
Metric Monitoring
Connection Test Successful But Integration Flow Gives Error
Connection Test Successful But Integration Flow Gives Error
Enable Toggle
Connection Selection
Connection Deploy
Flow/Job Deploy
Log Check
Frequently Asked Questions (FAQ)
Can I send both log and business data with the same RabbitMQ Connection?
Can I send both log and business data with the same RabbitMQ Connection?
Do I have to use DNS instead of IP in host list?
Do I have to use DNS instead of IP in host list?
How should I select Heartbeat value?
How should I select Heartbeat value?
Is TLSv1.3 supported?
Is TLSv1.3 supported?
TLSv1.3 in connectionFactorySslProtocol field.Can I differentiate message TTL by environment?
Can I differentiate message TTL by environment?
Can I use the same connection in multiple Integration Flows?
Can I use the same connection in multiple Integration Flows?
Is using Connection pool mandatory?
Is using Connection pool mandatory?
Should I create different connections for Test and Production?
Should I create different connections for Test and Production?
Test Connection is successful but not working in Integration Flow, why?
Test Connection is successful but not working in Integration Flow, why?
- Connection enable toggle may be passive
- A different connection may be selected in Integration step
- Connection may not be deployed
- Integration Flow may not have been redeployed yet

