Contract Architecture related to Chainlink connection

I’m not an expert in how the blockchain works, I can’t read contracts without making too many assumptions, but, I’ve coded on the web for +10 years, a total of +12 years including competitive programming, and I’ve seen systems change over time, the way the DMM Contracts work will assume Chainlink is here to stay permanently, I’d suggest getting another contract in between the DMM Contracts & the Chainlink Data that acts as a Proxy for the data service, not sure if this would increase gas costs, but, if the system is created around Chainlink and at one point Chainlink will not be a reliable service, the ecosystem can be migrated to a different oracle system without changing anything in the core data, just rather in the Proxy Service.

Another example would be chainlink changing the pattern of the data it returns, this would also make it practical to update the proxy service to make it convenient to update everything under the coded format, instead of updating every contract, this is very unlikely, but an added bonus of flexibility.

It would add an extra step in everything, but it would prevent the system to be hard to update in the future if ever required, as all the contract functionalities that relies on a service would find itself in a separate contract, rather than every contract that interacts with it.

1 Like

Great idea, using adapters so the protocol could adapt to various oracles