I am developing a trading/position management system in Python. It is therefore going to interact with external software, database events, and also on timed events as well.
Is it efficient enough to use a AMQP like RabbitMQ to handle everything? Or should I use a PyDispatcher for local events and AMQP for external events?
Are both these solutions going to be slower than just say, a normal function call from one python script to another imported python script?
Many thanks!
The right answer to your question depends on your architecture. If you're adopting a microservices-style architecture, it might make sense to use AMQP for all your event communication. If you're adopting more of a monolithic architecture, you may want to use PyDispatcher + AMQP.
Note that AMQP and RabbitMQ shouldn't be used interchangeably. AMQP is a protocol. RabbitMQ implements a specific version of AMQP (0.9 and 0.9.1). ActiveMQ (broker), Apache Qpid (broker), Apache Qpid Proton (client), and Microsoft Azure (cloud service) support AMQP 1.0.
Pydispatcher or AMQP/RabbitMQ for local event driven processing written in python?