I need advice on how to structure an app in terms of where to execute part of the core code logic: zkOracle or smart contract.
Ideally, zkOracle should function as proxy relaying data from off-chain sources to smart contracts. So all of the core code logic should be executed on smart contracts inside the circuit. But it's tempting to place more logic inside the zkOracle because it's easier to run outside the circuit using plain JavaScript. Moreover, executing some logic inside the circuit can be really difficult.
For example, I'm dealing with string manipulation to extract a DoB from a personal identification number. Outside the circuit (inside zkOracle in plain JavaScript), I can easily manipulate the string to extract the DoB. Inside the circuit, facing obstacles.