How PrizmDoc Viewer Load Balancing Works
If the people using your web application need to view, search, redact, or annotate documents right in their browser, PrizmDoc Viewer is an amazing option. It lets you present Office, PDF, TIFF, email, and many other kinds of documents as part of your web application. Check out some of the demos if you've never seen it in action.
To make all of this possible, there are basically two sides to the PrizmDoc Viewer architecture:
- The HTML viewer itself, running in the browser
- A powerful backend which converts documents, page by page, to SVG for viewing in the browser
Your web server sits between these two, acting as a proxy for the viewer to ask the backend for the pages it needs to display:
One of the advantages of this architecture is that we can deliver the first page of the document as soon as it's ready, even while the rest of the document is still being converted. However, setting up and maintaining the backend is not trivial.
Fortunately, Accusoft can handle all of that for you with PrizmDoc Cloud. Sign up, get an API key, and simply connect your web application to our already-running, fully-managed PrizmDoc Viewer backend. It's a great option, especially if you're just getting started with PrizmDoc Viewer.
But, of course, using an Accusoft-hosted backend may not work for your business. Maybe you are not allowed to ever let documents leave your network, even temporarily. If that's the case, you'll need to host and manage the backend yourself. As customers start looking into what it takes to do that, we get a lot of questions about how load balancing works. How is the compute workload spread across the servers? How are HTTP requests routed to the the correct machines? What sort of load balancer(s) should I be using? Those are the kinds of questions we'll cover in this post.
To do that, though, we first need a more detailed picture of the backend. For more on PrizmDoc load balancing, check out the rest of my article here.
Adam Cooper, Software Architect, PrizmDoc
Adam joined Accusoft in 2010 and works as a software architect for the PrizmDoc family of products. He focuses primarily on API design, customer experience, and internal tooling to support product development. Prior to Accusoft, Adam developed software for a variety of organizations, mostly focusing on .NET, web development, and automated testing. Outside of work, Adam enjoys photography, music composition and engraving, discussing the Bible, and spending time with his family and church.