Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Inventa for Python

LinkedIn Twitter HitCount License

A Python library for microservice registry and executing RPC (Remote Procedure Call) over Redis.

WHY THIS PROJECT?

Service discovery, registry, and execution of remote procedures are some of the necessary tools in distributed applications. You must track which services (also how many replica instances of them) are alive. Also, your services should communicate between each other (choreography) or via an orchestrator service on top of them.

You can do API/function calls remotely by serving REST APIs, gRPC endpoints, etc... But these choices came with some drawbacks or advantages, you have lots of different architectural options on this topic.

Inventa offers you a lightweight solution for these requirements; if you already have Redis in your project's toolbox, and if all of your services have access to this Redis instance.

Also, Inventa doesn't abstract/hide its Redis client object, you can use its Redis Client object freely which is already connected to the server.

USAGE SCENARIO

  • You have an application that consists of multiple services, developed with different languages (currently Go and Python are supported),
  • These services exist for different jobs, also they may be replicated into more than one instances, may be run in either different containers or machines,
  • There is one registrar/orchestrator service which other services will register themselves and send their heartbeats to it,
  • The orchestrator knows which service types and instances are alive now, the orchestrator should select one of the instances of a specific service, then call a function/procedure of the service, and get a response remotely.
  • All of your services will use Inventa, the one orchestrator service will instantiate it in Orchestrator Inventa role, other services will instantiate it in Service Inventa role.
  • Both Service roles and the Orchestrator role can call functions that are provided by other services if they know target service's identifier.

INSTALLATION

pip install inventa

EXAMPLE PROJECT

You can find example projects made using Inventa at https://github.com/adalkiran/inventa-examples.

OTHER IMPLEMENTATIONS

You can find Go implementation of Inventa on Inventa for Go (go-inventa).

LICENSE

Inventa for Python is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Metadata

Release files for inventa 0.0a15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for inventa 0.0a15
File Size Uploaded Provenance Actions
inventa-0.0a15.tar.gz 12.7 kB Without provenance Details for inventa-0.0a15.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for inventa 0.0a15
File Interpreter ABI Platform Actions
inventa-0.0a15-py3-none-any.whl Python 3 none any Details for inventa-0.0a15-py3-none-any.whl

Total release size: 27.9 kB

Release files / inventa-0.0a15.tar.gz

Download URL inventa-0.0a15.tar.gz
Size 12.7 kB
Tags Source
SHA-256 checksum
How to use checksums
43bc846617f33db51ea51fed123bd8554c83ed68ed7c12fe1b371e59869f44ac
BLAKE2b-256 checksum
How to use checksums
ac21f5fb4b68ed39b3c7dc751fb19a3f367728167bff24f27dc999a91bb0264d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.13

Release files / inventa-0.0a15-py3-none-any.whl

Download URL inventa-0.0a15-py3-none-any.whl
Size 15.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b5c87d0b059c718eecec2be6f7b8cf97c3c7024711da0f80380fab3201fbd496
BLAKE2b-256 checksum
How to use checksums
ab97b04dd1d1b1ef593a438084702ce3b76338f5acc6ccd37ca592bab8b66e50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.13

Security for inventa 0.0a15

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page