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.2.0.tar.gz (3.5 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.2.0-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aiofase-0.2.0.tar.gz
Algorithm Hash digest
SHA256 83b90a1893ae1d01dad39619b85023a5a52ce0127056238a3afe3a85dafc60a4
MD5 abc34cbe0b243e6aa08fa7f72d54b956
BLAKE2b-256 eb8b423bb13a58555f1f790b7a500597ba58e3d8ee4df1f5771b7c5f2f0e95cf

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for aiofase-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e9fac7d5e8ed4c2e5340e3957dff75537c178c3aae633cac7852aa7d537b7c7
MD5 938e964b0aea1a765ad2c6d97904d88b
BLAKE2b-256 062e1f518845aad5d370e916bd9eb965cdbf5e472b8224178204d72f33611ba4

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