pwbus
An integration bus capable of performing message transformation and managing task execution. Message exchange between plataforms, like HTTP, Redis, RabbitMQ, Apache Kafta, AWS SQS, MongoDB.
Features
- Message transformation
- Task execution management
- Asynchronous communication
- Connectors
Install:
$ pip3 install pwbus
Start the server:
$ pwbus -f pwbus-registry.json start
Note: Set "engine.production = false" to force reload task module always.
Sample: pwbus-registry.json
[
{
"_comment1": "----------------------------------------------------------",
"_comment2": "### Channel for PWBus Demo Pseudosync REDIS",
"_comment3": "----------------------------------------------------------",
"channel": "app-channel-pseudosync-redis",
"engine.enabled": true,
"engine.debug": true,
"engine.production": false,
"flow.in.resource_type": "http",
"flow.in.resource_name": "/app/v1/request",
"flow.in.payload_format": "json",
"flow.out.resource_type": "redis",
"flow.out.host": "redis",
"flow.out.port": 6379,
"flow.out.resource_name": "app-channel-pseudosync.request.app-in",
"flow.out.payload_format": "json",
"flow.out.ttl_seconds": 0,
"flow.out.reply_to": "app-channel-pseudosync.response.app-out",
"flow.message_dump": false,
"flow.execute_services": false
},
{
"channel": "app-channel-pseudosync-fake-redis",
"_comment": "### Channel for PWBus Demo Pseudosync REDIS",
"engine.enabled": true,
"engine.start_threads": 10,
"engine.debug": true,
"flow.in.resource_type": "redis",
"flow.in.host": "redis",
"flow.in.port": 6379,
"flow.in.resource_name": "app-channel-pseudosync.request.app-in",
"flow.in.payload_format": "json",
"flow.out.resource_type": "redis",
"flow.out.host": "redis",
"flow.out.port": 6379,
"flow.out.resource_name": "app-channel-pseudosync.response.app-out",
"flow.out.payload_format": "json",
"flow.out.ttl_seconds": 20,
"flow.message_dump": false,
"flow.execute_services": true
},
{
"_comment1": "----------------------------------------------------------",
"_comment2": "### Channel for PWBus Demo Pseudosync RabbitMQ",
"_comment3": "----------------------------------------------------------",
"channel": "app-channel-pseudosync-rabbitmq",
"engine.enabled": true,
"engine.debug": true,
"flow.in.resource_type": "http",
"flow.in.resource_name": "/app/v1/request",
"flow.in.payload_format": "json",
"flow.out.resource_type": "rabbitmq",
"flow.out.host": "rabbitmq",
"flow.out.port": 5672,
"flow.out.resource_name": "app-channel-pseudosync.request.app-in",
"flow.out.payload_format": "json",
"flow.out.ttl_seconds": 0,
"flow.out.reply_to": "app-channel-pseudosync.response.app-out",
"flow.message_dump": false,
"flow.execute_services": false
},
{
"channel": "app-channel-pseudosync-fake-rabbitmq",
"_comment": "### Channel for PWBus Demo Pseudosync RabbitMQ",
"engine.enabled": true,
"engine.start_threads": 2,
"engine.debug": true,
"flow.in.resource_type": "rabbitmq",
"flow.in.host": "rabbitmq",
"flow.in.port": 5672,
"flow.in.resource_name": "app-channel-pseudosync.request.app-in",
"flow.in.payload_format": "json",
"flow.out.resource_type": "rabbitmq",
"flow.out.host": "rabbitmq",
"flow.out.port": 5672,
"flow.out.resource_name": "app-channel-pseudosync.response.app-out",
"flow.out.payload_format": "json",
"flow.message_dump": false,
"flow.execute_services": true
},
{
"_comment1": "----------------------------------------------------------",
"_comment2": "### Channel for PWBus Demo AWS SQS",
"_comment3": "----------------------------------------------------------",
"channel": "app-channel-pseudosync-sqs",
"engine.enabled": true,
"engine.debug": true,
"flow.in.resource_type": "http",
"flow.in.resource_name": "/app/v1/request",
"flow.in.payload_format": "json",
"flow.out.resource_type": "sqs",
"flow.out.resource_name": "https://sqs.us-east-1.amazonaws.com/408343843105/app-request-in",
"flow.out.payload_format": "json",
"flow.out.ttl_seconds": 0,
"flow.out.reply_to": "https://sqs.us-east-1.amazonaws.com/<account-id>/app-response-out",
"flow.message_dump": false,
"flow.execute_services": false
},
{
"channel": "app-channel-pseudosync-fake-sqs",
"_comment": "### Channel for PWBus Demo Pseudosync AWS SQS",
"engine.enabled": false,
"engine.start_threads": 2,
"engine.debug": true,
"flow.in.resource_type": "sqs",
"flow.in.resource_name": "https://sqs.us-east-1.amazonaws.com/<account-id>/app-request-in",
"flow.in.payload_format": "json",
"flow.out.resource_type": "sqs",
"flow.out.resource_name": "https://sqs.us-east-1.amazonaws.com/<account-id>/app-response-out",
"flow.out.payload_format": "json",
"flow.message_dump": false,
"flow.execute_services": true
},
{
"_comment1": "----------------------------------------------------------",
"_comment2": "### Channel for PWBus Demo Apache Kafka",
"_comment3": "----------------------------------------------------------",
"channel": "app-channel-pseudosync-kafka",
"engine.enabled": true,
"engine.debug": true,
"flow.in.resource_type": "http",
"flow.in.resource_name": "/app/v1/request",
"flow.in.payload_format": "json",
"flow.out.resource_type": "kafka",
"flow.out.host": "kafka",
"flow.out.port": 9092,
"flow.out.resource_name": "app-request-in",
"flow.out.payload_format": "json",
"flow.out.ttl_seconds": 0,
"flow.out.reply_to": "app-response-out",
"flow.message_dump": false,
"flow.execute_services": false
},
{
"channel": "app-channel-pseudosync-fake-kafka",
"_comment": "### Channel for PWBus Demo Pseudosync Apache Kafka",
"engine.enabled": true,
"_____________warning": "if great than 1 cause message out duplication",
"engine.start_threads": 1,
"engine.debug": true,
"flow.in.resource_type": "kafka",
"flow.in.host": "kafka",
"flow.in.port": 9092,
"flow.in.resource_name": "app-request-in",
"flow.in.payload_format": "json",
"flow.out.resource_type": "kafka",
"flow.out.host": "kafka",
"flow.out.port": 9092,
"flow.out.resource_name": "app-response-out",
"flow.out.payload_format": "json",
"flow.message_dump": false,
"flow.execute_services": true
},
{
"_comment1": "----------------------------------------------------------",
"_comment2": "### Channel for PWBus Demo Mongo",
"_comment3": "----------------------------------------------------------",
"channel": "app-channel-pseudosync-mongo",
"engine.enabled": true,
"engine.debug": true,
"flow.in.resource_type": "http",
"flow.in.resource_name": "/app/v1/request",
"flow.in.payload_format": "json",
"flow.out.resource_type": "mongo",
"flow.out.host": "mongodb",
"flow.out.port": 21017,
"flow.out.resource_name": "pwbus_db.app_request_in",
"flow.out.payload_format": "json",
"flow.out.reply_to": "pwbus_db.app_response_out",
"flow.message_dump": false,
"flow.execute_services": false
},
{
"channel": "app-channel-pseudosync-fake-mongo",
"_comment": "### Channel for PWBus Demo Pseudosync Mongo",
"engine.enabled": true,
"engine.start_threads": 3,
"engine.debug": true,
"flow.in.resource_type": "mongo",
"flow.in.host": "mongodb",
"flow.in.port": 21017,
"flow.in.resource_name": "pwbus_db.app_request_in",
"flow.in.payload_format": "json",
"flow.out.resource_type": "mongo",
"flow.out.host": "mongodb",
"flow.out.port": 21017,
"flow.out.resource_name": "pwbus_db.app_response_out",
"flow.out.payload_format": "json",
"flow.message_dump": false,
"flow.execute_services": true
},
{
"_comment1": "----------------------------------------------------------",
"_comment2": "### Channel for PWBus Demo Async Service Request",
"_comment3": "----------------------------------------------------------",
"channel": "app-channel-async",
"engine.enabled": false,
"engine.debug": true,
"flow.in.resource_type": "http",
"flow.in.resource_name": "/app/v1/request",
"flow.in.payload_format": "json",
"flow.in.pseudosync_mode": false,
"flow.out.resource_type": "redis",
"flow.out.host": "redis",
"flow.out.port": 6379,
"flow.out.resource_name": "app-channel-async.request.app-in",
"flow.out.payload_format": "json",
"flow.out.ttl_seconds": 10,
"flow.out.pseudosync_mode": false,
"flow.message_dump": true,
"flow.execute_services": true
},
{
"channel": "app-channel-async-process-csv",
"_comment": "### Channel for PWBus Demo Async Service - Process to CSV",
"engine.enabled": false,
"engine.start_threads": 4,
"engine.debug": true,
"flow.in.resource_type": "redis",
"flow.in.host": "redis",
"flow.in.port": 6379,
"flow.in.resource_name": "app-channel-async.request.app-in",
"flow.in.payload_format": "json",
"flow.in.pseudosync_mode": false,
"flow.out.resource_type": "redis",
"flow.out.host": "redis",
"flow.out.port": 6379,
"flow.out.resource_name": "app-channel-async.response.app-out",
"flow.out.payload_format": "csv",
"flow.out.ttl_seconds": 10,
"flow.out.pseudosync_mode": false,
"flow.message_dump": true,
"flow.execute_services": false
},
{
"channel": "app-channel-async-read-csv-send-http",
"_comment": "### Channel for PWBus Demo Async Service - read-csv-send-http",
"engine.enabled": false,
"engine.start_threads": 4,
"engine.debug": true,
"flow.in.resource_type": "redis",
"flow.in.host": "redis",
"flow.in.port": 6379,
"flow.in.resource_name": "app-channel-async.response.app-out",
"flow.in.payload_format": "csv",
"flow.in.pseudosync_mode": false,
"flow.out.resource_type": "http",
"flow.out.payload_format": "json",
"flow.out.ttl_seconds": 10,
"flow.out.pseudosync_mode": false,
"flow.message_dump": true,
"flow.execute_services": false
}
]
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pwbus-0.1.64.tar.gz
(28.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pwbus-0.1.64.tar.gz.
File metadata
- Download URL: pwbus-0.1.64.tar.gz
- Upload date:
- Size: 28.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/4.0.2 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
510acde2fffc3410f2359237725e84b2f415814e8ae33de2872318ce14e0fd9d
|
|
| MD5 |
a7457bb4ab31b203fe4cc5761e9b7e2e
|
|
| BLAKE2b-256 |
64deab17ff6aad518d6338afa982c505b1464d9753365b11354c08dd3df9f820
|
File details
Details for the file pwbus-0.1.64-py2.py3-none-any.whl.
File metadata
- Download URL: pwbus-0.1.64-py2.py3-none-any.whl
- Upload date:
- Size: 49.5 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/4.0.2 CPython/3.9.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
988af5914881af435d42e6091beaa9f66830e681a89472d213d8eb42006720a0
|
|
| MD5 |
7bfc58ee077d5af83bb27384ca920ca2
|
|
| BLAKE2b-256 |
63b40b2ae196cebe10b755b470cf23124ae7ca618e0b24cbe9ded40e2f54e66a
|