You can actually stream the XOD to WebViewer as it is being converted. On the WebViewer side you switch to Streaming mode (passed in the WebViewer constructor).
On server side you use the ToXod function that returns a Filter, and connect to a FilterReader. In our .Net SDK see the WebViewerStreamingTest sample project. Here is the important code
pdftron.Filters.Filter filter = pdftron.PDF.Convert.ToXod(file, options);
pdftron.Filters.FilterReader fReader = new pdftron.Filters.FilterReader(filter);
byte[] buffer = new byte[64 * 1024]; //64 KB chunks
int bytesRead = 0;
bytesRead = fReader.Read(buffer);
Response.BufferOutput = false;
int totalBytesSent = 0;
while (bytesRead > 0) {
// write bytes to the response stream
Response.OutputStream.Write(buffer, 0, bytesRead); // only write bytesRead amount, as last write will be less than buffer size
totalBytesSent += bytesRead;
bytesRead = fReader.Read(buffer);
}
Note, in the sample the converted XOD bytes are not kept server side, but you could certainly do that and retain a local copy of the XOD for future usage.