Skip to main content

Microservice gateway using Nats

Project description

Metropolis (Python Microservice Gateway with NATS)

Can we make simple, scalable, observable, operable service gateway?

Architecture Concept

+- Node-1 --+  +- Node-2 -+  +- Node-3 --+  +- Node-4 -+
|           |  |          |  |           |  |          |
| Worker-a  |  |          |  |           |  | Worker-d |
| Worker-b  |  | Worker-c |  | Worker-a  |  | Worker-c |
|    |      |  |    |     |  |    |      |  |    |     |
|   NATS ========= NATS ======================= NATS   |
|    |      |  |          |  |    |      |  |          |
|  Gateway  |  |          |  |  Gateway  |  |          |
|    |      |  |          |  |    |      |  |          |
+--- | -----+  +----------+  +--- | -----+  +----------+
     |                            |
     +--------------+-------------+
                    |
                  Ingress

Components

Nats

Message bus

Worker

Business Logic worker

Gateway

Service gateway

Example

Install metropolis

$ pip install metropolis

Define Worker task

from metropolis import Worker


worker = Worker(nats='nats://localhost:4222')


@worker.task(subject='foo.bar', queue='worker')
def mytask(data, *args, **kwargs):
    """Simple task which returns reverse string
    """

    return data[0][::-1]


worker.run()

Define Gateway

from metropolis import Gateway
import settings


gateway = Gateway(nats='nats://nats:4222')
gateway.app.run(host='0.0.0.0')

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

metropolis-0.1.4.dev0.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

metropolis-0.1.4.dev0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file metropolis-0.1.4.dev0.tar.gz.

File metadata

  • Download URL: metropolis-0.1.4.dev0.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.3

File hashes

Hashes for metropolis-0.1.4.dev0.tar.gz
Algorithm Hash digest
SHA256 57856f2173230fc1e3face82a0670a881cc079e2ab1c7f61486013b1abbe3774
MD5 fda5fd7e9375dc04d55a01dedd363e94
BLAKE2b-256 61be4c9e35c239d1ead39730d3dd44837f92213011300fce0c17407c610a2057

See more details on using hashes here.

File details

Details for the file metropolis-0.1.4.dev0-py3-none-any.whl.

File metadata

  • Download URL: metropolis-0.1.4.dev0-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.3

File hashes

Hashes for metropolis-0.1.4.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 04fe1371ebd99c9d564270155e7d2e62ef537852e7fd581c955965616ae8e1ad
MD5 c17f86074bcdcf8fdfd1e7477aefef1a
BLAKE2b-256 82cee6f831cb6f3a348f28b67880682db1e43deeda38c88e047bbae57cfe4e02

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page