The single most important design choice in an oracle — and which providers use which.
Push oracles write data on-chain on a schedule — every heartbeat or when the price moves past a threshold. The value is always there, but someone pays gas to keep it fresh. Pull oracles keep data off-chain and write it only when an app requests it in the same transaction — cheaper and lower-latency, but the integrating contract must fetch and verify the update.
Push (Data Feeds) plus a pull option (Data Streams) — the most flexible coverage of both models.
Push when you want a value always sitting on-chain (lending health checks); pull when you want the freshest price at the moment of action with minimal gas (perps, periodic reads).