Skip to main content

A Fast Asynchronous MicroService Environment compatible with asyncio and pyfase

Project description

🛰️ Async MicroService Framework com ZeroMQ

Este projeto é um framework leve e assíncrono para criar microsserviços em Python, utilizando zmq.asyncio como mecanismo de comunicação entre processos ou entre máquinas.

🚀 Recursos

  • 📡 Comunicação assíncrona entre microsserviços com ZeroMQ (PUSH/PULL + PUB/SUB)
  • 🧠 Suporte a ações (@action) e tarefas (@task) com execução assíncrona
  • 📢 Suporte a mensagens broadcast, requisições diretas e respostas
  • 🔌 Sistema de descoberta de serviços simples e leve
  • ⚙️ Customização com hooks para eventos (on_connect, on_new_service, etc.)

📦 Requisitos

  • Python 3.8+
  • pyzmq
  • asyncio
poetry install

Exemplo de Uso

class MyService:
    @MicroService.action
    async def hello(self, origin, data):
        print(f"Recebido de {origin}: {data}")

    @MicroService.task
    async def heartbeat(self):
        while True:
            await asyncio.sleep(5)
            print("Estou vivo")

if __name__ == '__main__':
    service = MicroService(
        service=MyService(),
        sender_endpoint='ipc:///tmp/sender', # tcp://0.0.0.0:3000
        receiver_endpoint='ipc:///tmp/receiver' # tcp://0.0.0.0:4000
    )
    asyncio.run(service.run())

📡 Fluxo de Mensagens

  • Registro: ao iniciar, um serviço envia uma mensagem com suas ações disponíveis.

  • Broadcast: mensagens são enviadas para todos os serviços.

  • Ação direta: mensagens com prefixo action: disparam métodos marcados como @action.

  • Resposta direta: mensagens com prefixo service_name: retornam dados diretamente ao solicitante.

🧩 Arquitetura

┌──────────────┐        PUSH        ┌──────────────┐
│ MicroService │ ─────────────────▶ │   Receiver   │
└──────────────┘                    └──────────────┘
     ▲
     │
 SUB │
     ▼
┌──────────────┐
│   Sender     │
└──────────────┘

🔄 Integração com outros sistemas

  • Pode ser facilmente integrado com sensores IoT, bancos de dados, interfaces HTTP ou MQTT.

  • Ideal para arquiteturas orientadas a eventos com múltiplos serviços independentes.

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

aiofase-0.4.0.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

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

aiofase-0.4.0-py3-none-any.whl (5.1 kB view details)

Uploaded Python 3

File details

Details for the file aiofase-0.4.0.tar.gz.

File metadata

  • Download URL: aiofase-0.4.0.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.3 Linux/6.14.0-37-generic

File hashes

Hashes for aiofase-0.4.0.tar.gz
Algorithm Hash digest
SHA256 c50176bc8695e41a2fd4dc0e44f1dd22575df2c07873b1c281234d4a83540afd
MD5 230d6c9bf16d9dc8cd6efb2eca9de60d
BLAKE2b-256 264d632c1591b8edb3d2e45aa67c22a923eaaa54e2437ce846fc8334a7067bdb

See more details on using hashes here.

File details

Details for the file aiofase-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: aiofase-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 5.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.3 Linux/6.14.0-37-generic

File hashes

Hashes for aiofase-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d626395e6e459ea74e12f873e9c02d09e836e3f4b336a2b483f132b47f4a839e
MD5 c2cd98b68e236610f6be82940844e60b
BLAKE2b-256 63e2e482bfee6994b16725dbb38b27ba5464206baaa584f11fd497d39143ba9c

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