Skip to content

Portable Senders #73

Description

@jackburridge

At the moment each server will send, and receive on the same protocol, there should be a mechanism for portability. Each server should be able to receive the sender from another protocol type.

All senders should match the following type:

from collections.abc import Awaitable
from typing import AsyncContextManager
from collections.abc import Callable

from amgi_types import MessageSendEvent

_MessageSendManagerT = AsyncContextManager[
    Callable[[MessageSendEvent], Awaitable[None]]
]

Using an asynchronous context manager means we can leave the clean up to the manager itself, the server simply uses the returned sender

Todo

The following servers show have a message send implementation that can be shared

  • amgi-redis
  • amgi-aiokafka
  • amgi-aiobotocore-sqs
  • amgi-sqs-event-source-mapping
  • amgi-paho-mqtt

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions