I'm trying to build my own oracle for a project (so I don't use chainlink or oraclize) and I've read this https://medium.com/@robinagist/building-an-ethereum-oracle-with-web3-js-1-0-1272b59cfc31. In my project I need to get off-chain data (weather) to see if I can make a reservation at a resort, so my smart contrcat calls a method on the weatherOracle contrcat which emits an event (my smart contract is not present in the figure). The event is captured by the oracle component which takes the data from the external source. What is the oracle component? Is it a node? if so what kind of node is it? I'm just talking about the component on the right (oracle).
The off-chain oracle component can be any backend system which has access to a blockchain node. It uses to node to monitor for the events and when it sees an event in the on-chain oracle contract, it gets the requested data from whatever source and submits the data to the oracle contract.
So typically that component is some application running on a regular server.