High Level Plan for marlowe-sync #420
jhbertra
started this conversation in
Architecture
Replies: 1 comment 1 reply
-
|
Here are the key points about awkward use cases mentioned in the meeting:
|
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I'm starting this discussion for us to lay out and agree upon a high-level plan for the new runtime component
marlowe-sync(unification for and replacement ofmarlowe-historyandmarlowe-discovery).Problems to Address
MarloweSyncprotocol.marlowe-historyare complicated significantly by the requirement to explicitly follow / unfollow contracts, which makes replacing the backend and servicing certain queries hard.High Level Plan
marlowe-sync(marlowe-contract-indexerandmarlowe-syncdto mirror the design and scalability goals ofchain-indexer / chainseekd)a.
marlowe-contract-indexerconnects tochainseekdand transcribes marlowe transactions to a postgres database.b.
marlowe-syncdbinds to a socket and accepts incoming client connections on one of the application protocols.MarlowetSyncandMarloweHeaderSyncports frommarlowe-syncdMarloweBulkSyncport frommarlowe-syncda. Like
MarloweSyncbut it emits the full history of every contract on chain.a.
GetContractHeader- returns the header info for a contractb.
GetContractState- returns the current state of the contractc.
GetContractForTransaction- returns the contract header for a given Marlowe transaction IDd.
GetTransaction- returns the transaction information for a given Marlowe transaction IDmarlowe-historyandmarlowe-discoveryto depend onmarlowe-syncinsteadmarlowe-historyandmarlowe-discoveryto depend onmarlowe-syncinstead.Beta Was this translation helpful? Give feedback.
All reactions