I want to design a market place for certain tasks on Corda. The network should have two types of users, requesting parties, that require certain information and fulfilling parties that deliver the information. It should function like this:
- A party posts a request for certain data to all fulfilling participants on the network.
- Every fulfilling party that is able to provide the data can now fulfil the request and update the state.
How I would currently solve this:
- The requesting party creates a state which also describes what data is requested. All fulfilling parties on the network would have to participate in the state to see it.
- Any fulfilling party that wishes to fulfil the request can update the state and supply the requested data.
I see the following problems with the architecture
- The requesters need to keep track of all fulfilling parties in the network to include as participants
- Multiple parties might be racing to fulfil a request first
- The vaults of fulfilling parties would become cluttered with requests they didn't want to fulfil
Does anyone have some advice on how to efficiently design such a system?