Microservice interop (was AMQP transport interoperability #333)

Hi there,

I have posted a suggestion or a potential direction of work on Github and
Matt mentioned this would be a better place for discussing this.

Here's the thread so far:

Hi there,

···

I'm wondering whether it could be desirable to look into how to
interoperate with other microservices frameworks. In particular I'm
interested in interop with Seneca <http://senecajs.org/> which has a nice
transport abstraction and would allow to have a polyglot microservices
ecosystem.
In particular it has an AMQP transport
<https://www.npmjs.com/package/seneca-amqp-transport> and I imagine that
it would be possible to tweak the transports so that they interoperate.
Would this be of interest?
Cheers,
Jun

Hey Jun,
Seneca looks cool, and sympathetic to the way nameko is written -- keeping
business logic separate from transports.
I had a look over the AMQP transport and it would certainly be possible to
make a Seneca-compatible set of nameko extensions. If you wanted to do this
I would start with a nameko.rpc.RpcProxyequivalent that can make requests
to a Seneca service, and then add an @rpc equivalent entrypoint that
could handle requests from a Seneca client.
The seneca-amqp-transport docs only seem to talk about RPC. Does it also
support pub-sub style messaging like nameko events? Or lower-level AMQP
messaging with full control over queues, exchanges, bindings and routing
keys?
The mailing list <https://groups.google.com/forum/#!forum/nameko-dev> is
the best place for these kinds of discussions. I will close this issue and
we can pick up the conversation there if you like.

Hi Jun,

To pick this up again -- does the seneca-amqp-transport offer any
asynchronous messaging, or is it just RPC-style request-response?

Matt.

···

On Wednesday, June 15, 2016 at 6:12:29 PM UTC+1, j...@iilab.org wrote:

Hi there,

I have posted a suggestion or a potential direction of work on Github and
Matt mentioned this would be a better place for discussing this.

Here's the thread so far:

Hi there,

I'm wondering whether it could be desirable to look into how to
interoperate with other microservices frameworks. In particular I'm
interested in interop with Seneca <http://senecajs.org/> which has a
nice transport abstraction and would allow to have a polyglot microservices
ecosystem.
In particular it has an AMQP transport
<https://www.npmjs.com/package/seneca-amqp-transport> and I imagine that
it would be possible to tweak the transports so that they interoperate.
Would this be of interest?
Cheers,
Jun

Hey Jun,
Seneca looks cool, and sympathetic to the way nameko is written --
keeping business logic separate from transports.
I had a look over the AMQP transport and it would certainly be possible
to make a Seneca-compatible set of nameko extensions. If you wanted to do
this I would start with a nameko.rpc.RpcProxyequivalent that can make
requests to a Seneca service, and then add an @rpc equivalent entrypoint
that could handle requests from a Seneca client.
The seneca-amqp-transport docs only seem to talk about RPC. Does it also
support pub-sub style messaging like nameko events? Or lower-level AMQP
messaging with full control over queues, exchanges, bindings and routing
keys?
The mailing list <https://groups.google.com/forum/#!forum/nameko-dev> is
the best place for these kinds of discussions. I will close this issue and
we can pick up the conversation there if you like.