Skip to main content

Microservices Without Headaches

Project description

simple-pyms: Python Microservices Without The Headaches

Simple PyMS (SPMS) provides base class abstractions for a very simple microservice architecture. Currently SPMS provides a baseline component that sends heartbeats and a monitor component that tracks microservices and their statuses based on these heartbeats.

The WAMP protocol is used to handle message brokering and RPC. So, to use PyMS you will need a WAMP router such as crossbar.io.

What Does It Do?

SPMS makes creating microservices (WAMP Components) and monitoring them easy. There are two components to deal with - Monitor and Microservice. Monitor monitors Service instances.

So, create a single Monitor instance and one or more Microservice instances. Connect them to the router and you have a poor man's microservice architecture.

Configuring Your Wamp Router

To configure your wamp router, you will need to setup roles for your components. Each microservice component will need to have permissions setup properly for the microservice uri: py.ms.*

permissions:
  # Microservice activities
  - uri: py.ms
    match: prefix
    allow:
      call: true
      register: true
      publish: true
      subscribe: true

Creating A Simple Component

from simplepyms.microservice import mk_component
from autobahn.twisted.component import run
component = mk_component('component-name', 'ws://localhost:8080/ws', 'realm')
run(component)

The code above creates a component that has stop, restart and heartbeat notification built in. Add functionality to make your component more meaningful.

from simplepyms.microservice import mk_component
from autobahn.twisted.component import run
component = mk_component('component-name', 'ws://localhost:8080/ws', 'realm')

@component.register('py.ms.add')
def add(a, b):
    return a + b

run(component)

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

simple-pyms-0.2.0.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

simple_pyms-0.2.0-py3-none-any.whl (5.7 kB view details)

Uploaded Python 3

File details

Details for the file simple-pyms-0.2.0.tar.gz.

File metadata

  • Download URL: simple-pyms-0.2.0.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.5

File hashes

Hashes for simple-pyms-0.2.0.tar.gz
Algorithm Hash digest
SHA256 6d9a3dce9c03a20bf7536b6885f99de8721c610cb79f34c702a9e55e394f5284
MD5 79327ce26a63c02bc49975ab45a7a678
BLAKE2b-256 064e7c62c849aece75fb9f6973cdfe4f40762818d541bd84a5b1438c2fb5ff6a

See more details on using hashes here.

File details

Details for the file simple_pyms-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: simple_pyms-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 5.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.24.0 CPython/3.6.5

File hashes

Hashes for simple_pyms-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7bdc6853f085d8268dec8a6d4eb2689e947b60f54da0bf3374c76f2e0c12f1d8
MD5 9c9373391b5f34e48b112a3e6447d607
BLAKE2b-256 525d95258a7bd5005e717d3334c3aaf9d56d2e4f6094062d8859e8e57b11943f

See more details on using hashes here.

Supported by

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