Based on comments from @ekrenzke, @kincaid and @austin_king both here and on the other Ledger Adapter Interface thread, I think we should not try to abstract the Settlement Engine → Ledger Adaptor interface.
- It’s complex and the complexity is probably not warranted at this time
- It’s hard to get the abstraction right
- Worst case scenario is that some code is re-used between different ledger specific settlement engines and this is extracted into stand-alone libraries
As I said on that thread I’d advocate for standardising on the interface I proposed above as:
This can be optimised (now or when it’s deemed to be required) by supplementing getBalance
with a subscribeToBalanceChanges
that allows the SE to get a stream of balance updates from the connector instead of polling.
I am confident that concerns about the volume of updates that will be sent can be alleviated using a debounced stream however I think this is a premature optimisation.