SNS + SQS Communications made easy
Project description
Razemax
✉️ Async communications using AWS SNS + SQS for Python services ✨
Documentation
In-Memory event manager
Show me the code
from razemax.event_manager import EventManager
class NorthKoreaThreatCreatedEvent:
def __init__(self, id, target):
self.id = id
self.target = target
def trump_subscriber(event: NorthKoreaThreatCreatedEvent):
print(f"North korea will attack us or {event.target}!")
EventManager.subscribe(trump_subscriber, NorthKoreaThreatCreatedEvent)
EventManager.trigger(NorthKoreaThreatCreatedEvent(0, "Mexico"))
Result:
North korea will attack us or Mexico!
Trigger subscribers from SQS
Preconditions
SQS queue has to be subscribed to SNS topic before running the consumer
Code
from razemax.consumers import MessageConsumer
from razemax.drivers import SQSDriver
from razemax.event_manager import EventManager
from razemax.publisher import SNSMessagePublisher
def kp_message_to_event(message):
# Highly recommended to use Marshmallow to validate
return NorthKoreaThreatCreatedEvent(message.body['id'], message.body['target_name'])
mapper = {
'KPThreatCreated': kp_message_to_event
}
aws_settings = {
'region_name': "",
'aws_access_key_id': "",
'aws_secret_access_key': "",
'endpoint_url': ""
}
queue_driver = SQSDriver.build("korea-threats-queue", aws_settings)
MessageConsumer(mapper, EventManager, queue_driver).process_message()
publisher = SNSMessagePublisher.build(aws_settings, 'korea-topic')
publisher.publish('KPThreatCreated', {'id': 21, 'target_name': 'Portugal'})
Result:
North korea will attack us or Portugal!
Installing (TODO)
pip install git@github.com/transporter
Running the tests
To run end to end tests do:
make unit-tests
make integration-tests
Authors
- Jairo Vadillo (@jairovadillo)
License
This project is licensed under the MIT License - see the LICENSE.md file for details
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
razemax-0.0.8.tar.gz
(4.5 kB
view details)
File details
Details for the file razemax-0.0.8.tar.gz
.
File metadata
- Download URL: razemax-0.0.8.tar.gz
- Upload date:
- Size: 4.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5b8eb8cdb2257cf19e9baae176741ec14b67ab30712c13d7ed7ac7405b32656 |
|
MD5 | d572fb21fd596f21860d1a44f18b8387 |
|
BLAKE2b-256 | 69494849e1ac79fa126cc761e5cf580446399d96ee25fd28eb4d77c0cdf4d4ef |