---
# System prepended metadata

title: Action Items

---

```mermaid
flowchart TD
    A[Gateway + ConnectionPool] -->|Emissary Channel UUID| B(Emissary)
    B --> C[ConnectionPool + GatewayClient to GW]
    C --> T[Batch Coordinator]
    T -->|Notary One Channel UUID| D[Notary 1 + GatewayClient]
    T -->|Notary Two Channel UUID| E[Notary 2 + GatewayClient]
    T -->|Notary Three Channel UUID| F[Notary 3 + GatewayClient]
```



|     |     |     |     |     | Column 1 | Column 2 | Column 3 |
| --- | --- | --- | --- | --- | -------- | -------- | -------- |
|     |     |     |     |     |          |          |          |
|     |     |     |     |     | Text     | Text     | Text     |




We don't want to farm out reservation
We _want_ to farm out authorization


# Action Items
* Add support for generic value in `monetae_gateway::session::ConnectionPool` so we can suport `Cursor<Item = SenderStream>>` for `<V>`
* implement a trait for a cursor object to use `get_sender()`, use [`RoundRobinCursor`](https://github.com/knox-networks/core/blob/f4c133e1a6b76a0951ba389239664fd306d4f995/emissary/src/connections/round_robin.rs#L14-L34) as an example
* implement packet proxying from Emissary `GatewayClient` to Emissary `ConnectionPool`
* `impl<D> proto::svc::gateway::MonetaeGateway for EmissaryService<D>`


 
  1. Emissary uses `proxy::connection::establish_connection` withing `GatewayClient` to establinsh _inbound stream_ for 
  2. Add notary field to CPF
  4. Emissary creates `ConnectionPool` to hold one or more Notary `SenderStream`s
  5. Within `context.rs` Emissary gets inbound GW packets and:
    - Reading the CPF notary
    - sending the the CPF to the correct `SenderStream` after using the appropriate `ConnectionPool` `<V as Cursor>::next()`
        - if the notary on CPF does not exist, simply ignore it
    - Notary outbound packets are sent to Emissary `GatewayClient`
        - packet should be intercepted and the sender field should be modified to use Emissary PK rather than Notary
    - Add passthrough for BatchCoordinator (discuss)

Goals:
* Allow multiple notaries with the same or different PK to connect to the same emissary
* Future proof for batching
What is being left out:
* CPF batching
* reservation coordinator