Are prices in the contract updated automatically on a schedule, or fetched only when needed?
First, a definition: a pull oracle stores signed prices off-chain, and the application submits the price along with the transaction. The on-chain contract uses it only after verifying the signature.
The underlying logic: In either model, how decentralized the price sources are and whether the nodes or publishers are independent both affect how difficult it is to manipulate the price feed or cause errors.
$PYTH and $LINK are the tokens of the oracle networks Pyth and Chainlink, respectively.
Markets are always full of surprises, so think ahead about what to do if your view turns out to be wrong.