Skip to main content

Comparison with Alternatives

RabbitMQ does not ship with a built-in message backup tool. Several approaches exist, each with tradeoffs. This page compares OSO RabbitMQ Backup against common alternatives.

Comparison Table

FeatureOSO RabbitMQ BackupShovel / FederationRabbitIOrmq-dumpManual FS BackupPortworx / Velero
Non-destructiveYesCopies (not backup)No (consumes)No (consumes)YesYes
Message backupYesN/A (replication)YesYesYes (raw files)Yes (raw files)
Definitions backupYesNoNoNoYes (rabbitmqctl)Yes (full disk)
Point-in-time restoreYesNoNoNoNoNo (snapshot only)
Cloud storageS3, Azure, GCSN/ALocal onlyLocal onlyLocalCloud volumes
Selective queue backupYesPer-shovel configYesYesNo (all or nothing)No
Stream queue supportYesNoNoNoYes (raw files)Yes (raw files)
ResumableYes (checkpoints)N/ANoNoNoNo
Compressionzstd, lz4N/ANoNoNoVolume-level
Integrity verificationvalidate --deepN/ANoNoNoNo
No broker downtimeYesYesYesYesRequires stopSnapshot (brief freeze)
No filesystem accessYesYesYesYesNo (needs access)No (needs access)
Cross-version restoreYesVersion-dependentLimitedLimitedNoNo
DeploymentSingle binaryBuilt-in pluginPython packageGo binaryShell scriptsK8s operator
Active maintenanceYesRabbitMQ coreLimitedArchivedN/AYes

Detailed Comparisons

OSO RabbitMQ Backup vs. Shovel / Federation

Shovel and Federation are RabbitMQ plugins for replicating messages between brokers in real time. They are not backup tools.

AspectOSO RabbitMQ BackupShovel / Federation
PurposeBackup and restoreLive replication
Data flowNon-destructive snapshot to storageContinuous message forwarding
StorageS3 / Azure / GCS / filesystemAnother RabbitMQ broker
Point-in-timeYesNo
Restore to past stateYesNo (only current state)
Config complexitySingle YAML filePer-queue shovel config

When to use Shovel/Federation: Active-active clusters, real-time replication, cross-datacenter message routing.

When to use OSO RabbitMQ Backup: Disaster recovery, compliance archival, migration, point-in-time restore.

OSO RabbitMQ Backup vs. RabbitIO

RabbitIO is a Python tool for dumping and loading RabbitMQ messages.

AspectOSO RabbitMQ BackupRabbitIO
LanguageRust (single binary)Python (pip install)
Backup methodNon-destructive (requeue)Consumes messages (destructive)
Cloud storageS3, Azure, GCS, filesystemLocal filesystem only
DefinitionsYesNo
Compressionzstd, lz4No
StreamsYesNo
ResumableYesNo
PITRYesNo

Key difference: RabbitIO consumes messages during backup, removing them from the queue. OSO RabbitMQ Backup reads and requeues, leaving messages intact.

OSO RabbitMQ Backup vs. rmq-dump

rmq-dump is a Go-based tool for dumping RabbitMQ messages.

AspectOSO RabbitMQ Backuprmq-dump
LanguageRustGo
Backup methodNon-destructive (requeue)Consumes messages (destructive)
Cloud storageS3, Azure, GCS, filesystemLocal filesystem only
DefinitionsYesNo
Compressionzstd, lz4No
Active developmentYesArchived / unmaintained

OSO RabbitMQ Backup vs. Manual Filesystem Backup

Stopping RabbitMQ and copying the Mnesia database directory.

AspectOSO RabbitMQ BackupFilesystem Backup
Downtime requiredNoYes (must stop broker)
Filesystem accessNot neededRequired (SSH/local)
PortabilityCross-version, cross-platformSame RabbitMQ version only
Selective backupPer-queue, per-vhostAll or nothing
Cloud deploymentWorks everywhereDifficult with managed services
Message-level restoreYes (PITR, filtering)No (restore entire state)
ComplexitySingle commandStop broker, copy files, restart

Filesystem backup is the only option that captures internal Mnesia state perfectly, but it requires downtime and is not portable across versions.

OSO RabbitMQ Backup vs. Portworx / Velero (Volume Snapshots)

Kubernetes volume snapshot tools capture the entire disk state.

AspectOSO RabbitMQ BackupPortworx / Velero
ScopeApplication-level (messages + definitions)Infrastructure-level (full volume)
DowntimeNoneBrief freeze during snapshot
Restore granularityPer-queue, per-message, PITRFull volume only
StorageObject storageCloud volume snapshots
Cross-cluster restoreYes (any RabbitMQ)Same storage provider
Cross-versionYesNo (same RabbitMQ version)
Kubernetes requiredNoYes
Message integrityApplication-consistentCrash-consistent

Volume snapshots are useful as an additional safety net but do not replace application-level backup for granular restore.

When to Use OSO RabbitMQ Backup

Choose OSO RabbitMQ Backup when you need:

  • Non-destructive backup -- messages must remain available to consumers
  • Cloud storage -- backups stored in S3, Azure Blob, or GCS
  • Point-in-time restore -- recover specific time windows
  • Cross-cluster migration -- move between clusters or versions
  • Compliance archival -- long-term retention with integrity verification
  • Selective backup -- specific queues, vhosts, or queue types
  • No broker access -- works remotely via AMQP and HTTP API
  • Stream queue backup -- native Stream Protocol support

Complementary Tools

OSO RabbitMQ Backup can be used alongside other tools:

ToolUse With OSO RabbitMQ Backup For
ShovelReal-time replication + periodic backup for DR
FederationMulti-datacenter routing + backup for archival
VeleroVolume snapshots as additional safety net
PrometheusMonitoring backup progress and alerting on failures