In shadow deployment we 1) deploy a new model in parallel with the existing one; 2) route every incoming request to both the existing and candidate model; 3) serve the existing model's predictions for users but only log the candidate's for analysis.
We need to deploy the candidate model and it requires online prediction resources, but it doesn't affect users at all, then I wonder what if we just don't deploy it and test it offline in the way of batch prediction? It seems to be like a backtest. But what are the differences?