Skip to content

Destinations

What Is a Destination?

A destination is the output side of a channel pair — it defines where messages are delivered to. After a message is received by the source and buffered, ioBufferPro delivers it to the configured destination.

ioBufferPro supports the same five protocol types for destinations as it does for sources, giving you full flexibility in how you route your data.

Delivery Behavior

All destination types share the same reliable delivery guarantees:

  • FIFO ordering — Messages are delivered in the exact order they were received (first in, first out).
  • Automatic retry — Failed deliveries are buffered and retried automatically with exponential backoff.
  • Automatic reconnection — If the destination becomes unreachable, ioBufferPro continuously attempts to reconnect.
  • Zero message loss — Messages are never discarded. They remain safely in the buffer until they are successfully delivered.

TIP

You do not need to worry about losing messages if a destination goes offline. ioBufferPro holds every message in its disk-backed buffer and delivers them as soon as the destination is available again.

TCP Server

A TCP Server destination listens for the remote system to connect and then delivers messages over that connection.

Use when: The receiving system initiates connections to ioBufferPro (e.g., a downstream application that polls for data).

Configuration:

SettingDescription
HostBind address. Use 0.0.0.0 for all interfaces, or 127.0.0.1 for localhost only
PortThe port number to listen on
TLSEnable encrypted connections with certificate and key file paths
json
{
  "type": "tcp_server",
  "host": "0.0.0.0",
  "port": 7000,
  "tls": {
    "enabled": false
  }
}

TCP Client

A TCP Client destination connects to a remote server and delivers messages over that connection.

Use when: ioBufferPro needs to push messages to an existing server (e.g., sending data to a central system or integration engine).

Configuration:

SettingDescription
HostRemote server hostname or IP address
PortRemote server port number
TLSEnable encrypted connections
json
{
  "type": "tcp_client",
  "host": "192.168.1.200",
  "port": 8000,
  "tls": {
    "enabled": true,
    "cert": "/path/to/cert.pem",
    "key": "/path/to/key.pem"
  }
}

Serial Port (RS232/RS485)

A Serial Port destination writes data to a serial device connected to the system.

Use when: You need to send data to serial-connected devices such as printers, displays, medical instruments, or industrial controllers.

Configuration:

SettingDescriptionCommon Values
PortSerial port identifierCOM1, COM3 (Windows) or /dev/ttyUSB0, /dev/ttyS0 (Linux)
Baud RateCommunication speed9600, 19200, 38400, 57600, 115200
Data BitsNumber of data bits per byte7, 8
ParityError detection methodNone, Even, Odd
Stop BitsNumber of stop bits1, 2
Flow ControlFlow control methodNone, RTS/CTS, XON/XOFF
json
{
  "type": "serial",
  "port": "COM5",
  "baud_rate": 115200,
  "data_bits": 8,
  "parity": "None",
  "stop_bits": 1,
  "flow_control": "None"
}

Remote ioBufferPro

A Remote ioBufferPro destination sends messages to another ioBufferPro instance. This enables forwarding data across sites or chaining ioBufferPro deployments together.

Use when: You need to relay messages to a remote ioBufferPro instance in another location, network segment, or environment.

Configuration:

SettingDescription
URLThe remote ioBufferPro instance address
Channel IDThe target channel on the remote instance
AuthenticationCredentials for the remote instance
json
{
  "type": "remote_icombuffer",
  "url": "http://remote-server:8080",
  "channel_id": "channel-002",
  "auth": {
    "username": "relay_user",
    "password": "********"
  }
}

UDP

A UDP destination sends UDP datagrams to a specified host and port.

Use when: The receiving system expects UDP data, such as a syslog collector, SNMP manager, or lightweight monitoring endpoint.

Configuration:

SettingDescription
HostDestination hostname or IP address
PortDestination port number
json
{
  "type": "udp",
  "host": "192.168.1.50",
  "port": 514
}

INFO

UDP is a connectionless protocol. Messages are sent without establishing a connection. While this makes UDP very fast, there is no built-in delivery confirmation from the transport layer. ioBufferPro still buffers and tracks each message internally.

ioBufferPro Documentation