Publish/Subscribe pattern build with RabbitMQ and Protocol Buffers
Project description
Publish/Subscribe pattern build with RabbitMQ and Protocol Buffers.
Installation
To install miPubSub, use pipenv (or pip):
$ pipenv install -e git@github.com:azylinski/miPubSub.git@master#egg=miPubSub
Run RabbitMQ
In order to use miPubSub, you need to have access to RabbitMQ server. To setup locally with docker:
docker run -d \ --name demo-rabbit \ -p 5672:5672 \ -p 15672:15672 \ rabbitmq:3.6.15-management-alpine
Define events structure
# schemas/events/user.proto syntax = "proto3"; package events; message User { string name = 1; string email = 2; }
# compile proto files protoc -I=schemas/events/ --python_out=proto/ schemas/events/*.proto
Example
# producer.py from miPubSub import PubSub from proto.user_pb2 import User ps = PubSub('user_management') u = User(name='Adam West', email='adam.west@mail.com') ps.publish('signup_completed', u)
# consumer.py from miPubSub import PubSub from proto.user_pb2 import User ps = PubSub('mailer') @ps.listen('signup_completed', User) def on_signup_completed(user): # Send welcome email to: user.email pass ps.run()
How it works
TBD
More details on rabbitmq pub/sub: https://www.rabbitmq.com/tutorials/tutorial-three-python.html
License
This project is licensed under the MIT License - see the LICENSE file for details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Built Distribution
Close
Hashes for miPubSub-0.1.dev1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a44600835792fc378d3ab7614e2e5e41a0423fc585316a38e2ddb73113c12548 |
|
MD5 | e0e15bcb5b957504c95674b19865691a |
|
BLAKE2-256 | 99436efd5c80a1a28ba4aff903228014aa06d1ebc6729f7a83570ecab73afdd7 |