

Ask HN: Python SOA framework - hari-allamraju

Is there any framework in Python that can be used to build a SOA architecture around an AMQP broker ? or is it best to roll out a custom one using an AMQP library?
======
ejstronge
I've used ZeroMQ - not quite an AMQP library but a tool you can use to achieve
similar goals[1] - in creating an SOA in Python.

The principal issue in using ZeroMQ is figuring out how to combine its
messaging primitives into something your application can use. This could end
up being an asset if you have special requirements; however, for common cases
there are established patterns you can use. For an SOA, you may like the
Majordomo Protocol [2].

As an aside, reading the ZeroMQ introduction was great in gaining an
appreciation for the difficulties arising from creating distributed
applications and was enjoyable, to boot [3].

[1] [http://zeromq.org/docs:welcome-from-amqp](http://zeromq.org/docs:welcome-
from-amqp)

[2] [http://zguide.zeromq.org/page:all#Service-Oriented-
Reliable-...](http://zguide.zeromq.org/page:all#Service-Oriented-Reliable-
Queuing-Majordomo-Pattern)

    
    
        Also see a Python implementation of this protocol:
        https://github.com/guidog/pyzmq-mdp
    

[3] [http://zguide.zeromq.org/page:all](http://zguide.zeromq.org/page:all)

~~~
schmidtc
ZeroMQ is really good. I think the best introduction to it is this video,
[http://vimeo.com/20605470](http://vimeo.com/20605470) (ZeroMQ is the answer).
Just ignore the it was recorded at a PHP conference, the examples are pretty
language agnostic.

I think one of the best things about ZeroMQ is there are not external brokers
or services that you have to keep running. The entire architecture is captured
in your own long running processes.

------
jardaroh
I am in the process of using Celery with Django, awesome stuff. Can't say
exactly what I am working on but I can say that some big jobs need to be run,
rabbitMQ is my queue server of choice and celery is my worker. Celery with
Django is awesomely easy, you should be up and running with a prototype in
just a few days.

~~~
hari-allamraju
Are you using Django as a part of your larger application/architecture or as a
auth provider for the SOA layer?

------
webmaven
You should probably check out Kombu, Pika, carrot, QAM, Puka, etc.

------
devb0x
stompy ?

