QIMB is a zero management, platform agnostic message bus.
- Serverless architecture powered 100% on AWS services such as SQS, SNS and Lambda
- Zero management
- Easy setup
- Cross platform
- Publish/Subscribe pattern (multicast and unicast message without knowing subscribers)
- Direct message (unicast to known receiver)
- Guarantied message delivery
- Push delivery (using http hooks)
- Pull delivery
- Scaleable
- Fault tolerant
Application | AWS API Gateway | AWS Lambda | AWS SNS | AWS SQS | HTTP Request |
---|---|---|---|---|---|
- Subscribers subscribe to Message Types (Red, Orange, Purple)
- Publishers send messages to QiMB using the Message Type
- Publishers do not know the subscribers (or if there are any)
- Message gets delivered to all subscribers of the Message Type
- If there are no subscribers when message is published, the message will never be delivered
- All subscribers are guarenteed to receive the message
- Messages may be delivered out of order
- Multicast messages can optionally be delivered through a HTTP web hook to decrease latency
- Approx 150 - 250 ms latency
- Subscribers subscribe Message Types to Buckets
- e.g. Message Type "OrderCompleted" to Bucket "OrderDetails"
- Publishers send messages to QiMB using the Message Type
- Publishers do not know the subscribers (or if there are any)
- Message gets delivered to one subscriber of the Bucket
- If there are no subscribers when message is published, the message will eventually be delivered
- Only one subscriber is guarenteed to receive the message
- Messages may be delivered out of order
- Subscribers subscribe to Direct Messages
- Publishers send messages to QiMB using the Node ID of the subscriber
- Publishers needs to know the subcriber
- Message gets delivered to the subscriber with the Node ID
- If there are no subscribers when message is published, the message will eventually be delivered
- Message is guarenteed to be delivered to the subscriber
- Messages may be delivered out of order
- Build the visual studio solution
- Open \Qimb.Framework\package in command line and use the AWS cli to build a deployment package
aws cloudformation package --template-file app.yaml --output-template-file CloudFormationTamplate.yml --s3-bucket [s3-bucket] --profile [profile]
- Deploy the generated file
CloudFormationTamplate.yml
using CloudFormation