Intro / Module Description

The microesb Python module provides the foundational features to build a centralized, structured Enterprise Service Bus (ESB) / Service-Oriented Architecture (SOA).

It enables clean Service Model to Python Class Mapping with support for both traditional relational databases and modern NoSQL backends. The module features user-based service call routing, recursive class hierarchy object deserialization, and graph-based JSON result abstraction, making it suitable for scalable Next-Level Platform-as-a-Service (PaaS) and Microservices architectures.

A Docker example container can be downloaded here: microesb-examples-latest.tar. Refer to /docker/README.md.

1. Basic System Installation

# install the module system-wide
pip3 install --break-system-packages microesb

2. Virtual Environment Installation

# install the module in a virtual environment
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
pip3 install microesb

3. Dependencies

Using the microesb module generally does not require the psycopg2 PostgreSQL Python module.

Warning

Running example code requires psycopg2 for Example 1 and pymongo for Example 2.

# install psycopg2
apt-get install python3-psycopg2

Note

Example 2 uses MongoDB as a NoSQL backend. MongoDB cannot be installed via apt on all systems and is preinstalled in the Docker example container. For local development, install MongoDB separately or use the provided Docker container.

4. Build Dependencies

On Debian 12 / Ubuntu 22.04 or 24.04, install the following additional packages (for documentation rendering and testing purposes).

# install base packages
apt-get install python3-pip python3-sphinx python3-sphinx-rtd-theme

# install pytest for running unit and integration tests
apt-get install python3-pytest python3-pytest-pep8

5. Build Local Package

To build and install the local package (also for testing), follow these steps.

# build source distribution
python3 setup.py sdist

# install system-wide
pip3 install --break-system-packages ./dist/microesb-1.0.tar.gz

6. Tests

To run all tests (unit and integration) after the system-wide package installation:

# run pytest
cd ./ && pytest

7. Current Features

  • JSON Service Metadata to Python Internal Class / Object Mapping

  • JSON Result Hierarchical Deserialization

  • Service Routing / Data Aggregation

8. Planned Features

  • Service Registry / API Server

  • Service Registry / YANG Model Export

  • Service Registry / Web Interface

  • Service API / Auto Documentation

  • Extended “Encapsulated” Service Routing

  • Mincepy Integration / Metadata Mapping