Connecting different nameko based applications

Hi folks!
Let me describe my project.

I have a cloud application built on top of nameko framework.
It has a dozen of microservices.

I also have some hundreds of IoT boxes based on OrangePi.
They also run a nameko based application consisting of 5-6 microservices. Every IoT box is fully self independent and self sufficent. It runs its own local rabbitmq server not connected to the outside world.

What I need is some data flow from the cloud app towards IoT box and from IoT box towards cloud app (smth like some data sync).

It would be nice to continue using nameko RPC to accomplish this.

For example, to be able to call RPC method on remote IoT box from the cloud or call cloud RPC method from IoT box.

So the question is how to achieve this?

As far as I read the docs you cannot connect to several AMQP brokers at the same time.

So I could connect all IoT boxes to the cloud AMQP but in this case the app is completely unusable when IoT box loses internet connection so this is not my way.

Thank you for your attention!


This would be bit of an abuse of Nameko RPC IMO. It is possible with some wrangling to connect to two independent brokers but not in a sensible way.

However, RabbitMQ has shovel and federation which are perfect solutions for moving messages between clusters.

I have used federation to connect independent clusters in the EU, Asia and China together and it worked beautifully.


In the past before starting using nameko I have taken a spin using for a toy project. implements the open Web Application Messaging Protocol WAMP. Some time later I wanted to check If I can combine this solution with nameko. I have managed to do a prototype using nameko-wamp. Eventually I have connected a set of services running on a remote device with a central system using this nameko extension. It was an experiment but it worked as a prototype.

I am sure that this is not the optimal way to do so, but I just wanted to give an idea.