I've been reading up on various basic MPC primitives (multiplication, inversion, exponentiation and so on of secrets shared between multiple parties). One of the problems of implementing MPC in real-world is performance. One of the common solution trends is splitting of the protocols into offline (preprocessing) and online phases.
The more complicated and resource-intensive a computation is, the more we win by offloading it into the offline phase... and I am trying to imagine what would that mean in practice: I am imagining a constant stream of requests for some "business" functionality (say, for example, for computing AES), each of which requires for some (potentially multiple) preprocessed data pieces (say, Beaver Triples) to have already been prepared in the offline phase... so, basically, an even (computationally) bigger stream of "offline" processing to be happening in the background...
My own vision includes either computing such offline resources in background when the "business" load is lower, pooling those in some storage (which is also sensitive, I guess?) or trying to offload the preprocessing into separate processes (servers?).
So, my main question is: Are there any works/guidelines that discuss the way to implement such offline phase(s) in practice?