Ask HN: Python SOA framework
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?
4 comments
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
[2] http://zguide.zeromq.org/page:all#Service-Oriented-Reliable-...
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
[2] http://zguide.zeromq.org/page:all#Service-Oriented-Reliable-...
Also see a Python implementation of this protocol:
https://github.com/guidog/pyzmq-mdp
[3] http://zguide.zeromq.org/page:allZeroMQ is really good. I think the best introduction to it is this video, 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.
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.
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.
Are you using Django as a part of your larger application/architecture or as a auth provider for the SOA layer?
You should probably check out Kombu, Pika, carrot, QAM, Puka, etc.
stompy ?