Migrating from RabbitMQ to LavinMQ

You’ve been using RabbitMQ with us and now you want to migrate to LavinMQ? This feature presents a simple way to switch from RabbitMQ to LavinMQ and vice-versa. But first…

What does migrating involve?

At a very high level, the migration feature starts by setting up a new LavinMQ cluster for you.This new cluster is configured based on the definitions extracted from your existing RabbitMQ setup—ensuring that your new environment mirrors the old one in configuration and design(With the exception of your HA configurations). This process usually takes a few minutes.

Once the new LavinMQ cluster is configured, the feature systematically shovels data from your RabbitMQ cluster to LavinMQ.

Note: The migration feature works in both ways — from RabbitMQ to LavinMQ and from LavinMQ to RabbitMQ. Also, the migration feature is currenly only available on dedicated plans.

How to migrate

Follow the steps below to migrate:

Step 1: Initiate migration

  • Navigate to your RabbitMQ cluster in the CloudAMQP console.
  • Click Edit.
  • Select Migrate to LavinMQ.

Migrate to LavinMQ button

Step 2: Choose your LavinMQ plan

On the next page, choose a LavinMQ plan and hit Save.

Select LavinMQ Plan

Step 3: Start the migration

Hit Confirm to begin transferring your data to LavinMQ.

Confirm Migration

To migrate your data back to RabbitMQ or simply move an existing LavinMQ cluster over, just follow the same steps above with your LavinMQ cluster.

Curious about what happens under the hood during the migration process?

Understanding the migration process

When you initiate the migration by hitting Confirm, here are the sequence of operations that unfold under the hood(simplified):

Migration steps

Let’s see what each step entails.

Validation check

First off, our system conducts a couple of verifications. For example, it validates that the selected LavinMQ plan is not smaller than your previous RabbitMQ plan. Essentially, it confirms that the LavinMQ plan you are migrating to can accommodate your existing workload.

Definitions transfer

The core settings from your RabbitMQ cluster—known as definitions— are then exported. These include your exchanges, queues, bindings, users, virtual hosts, permissions, and more. The exported definitions are subsequently imported into your new LavinMQ cluster.

Sanitation

Before these definitions go live, they undergo a sanitization process. Additionally, all high-availability (HA) policies will not be applied, aligning with LavinMQ's current single node broker architecture.

Message migration

With the new environment set and definitions in place, shovels are established. These are responsible for the real-time migration of messages from your RabbitMQ queues to the corresponding queues in LavinMQ.

Important considerations for migration

While we ensure a smooth transition during your migration to LavinMQ, there are a few edge cases you should be aware of:

  • Cluster availability: Your current RabbitMQ cluster remains online during migration. For data consistency, we strongly recommend pausing publishers as messages sent during the migration may not transfer.
  • Delayed messages: Cannot be migrated because they are not present in queues until their delay lapses.
  • Dead lettered messages: Will have their TTL reset upon migration to LavinMQ.

Be sure to plan for these scenarios to ensure a smooth transition to your new setup.