New Year, New Server Architecture

The last year has been an awesome start for PrintUI! We’re seeing very good adoption of the service and we’re seeing demand for new applications that put a higher load on our servers. We’re always excited to see the desire to use PrintUI for ever more complex applications.


Performance is Key

We want to make sure our architecture is up to the task of handling the additional load. It’s towards this end that we recently made a number of improvements to the way we handle concurrent use. Previously, we’ve been processing all jobs on PrintUI on a FIFO basis. FIFO stands for “First In, First Out”. To ensure that no jobs clog the job queue, we put in a timeout for any job. Recently that timeout has been 20 seconds. Any job that took InDesign Server longer than 20 seconds to process, was kicked out. For almost all our clients this system worked very well. Due to our efficient use of InDesign Server, most jobs finished in a second or two. The job queue was almost always clear and ready to process jobs, so the service has been very responsive to date.

Recently, though, we’ve seen demand for more complex uses for PrintUI where long and complex documents can take longer than 20 seconds to process. We were also concerned that as our overall volume increases, our clients might not always get the maximum possible performance for their jobs.

We needed to create a balance of offering the ability to process more complex documents, while ensuring that normal document processing was not adversely affected by clients who have more demanding needs.

Here’s What We Did

Multiple Concurrent Queues

First, we have upgraded our server where we host InDesign Server. We have multiple instances of InDesign Server which can process many jobs at the same time. We also implemented multiple queues which process jobs in priority order instead of simple FIFO.

This combined change will make a very noticeable difference in system responsiveness. In our tests, JPEG and PDF results come back at least twice as fast as they used to. There should almost never be any lag at all in job processing, with the average JPEG page preview coming back from InDesign Server in less than a second. We have many times the capacity we used to have and we can quickly add even more processing horsepower should we need it.

Complexity Score

We’ve instituted the concept of a complexity score. A complexity score is a way to tell the PrintUI system how long to expect a specific document to take to produce. The complexity score does a few things. First, it tells the system how long to give the job to complete. It’s necessary to have a timeout for all jobs, to ensure that if InDesign Server freezes for some reason, it is automatically restarted. However, you don’t want the system to kick out a job prematurely, so we use the complexity score to define the timeout. The more complex a document is, the more time we give it to complete.

The second thing the complexity score does is to help define the priority for document processing. The more complex a document is, the lower the priority is. This ensures that simple documents will always be processed as quickly as possible. More on this below.

Lastly, the complexity score defines if there will be additional processing fees. Complex documents can take a significant amount of time to process. This means additional costs to us, and those costs will be passed on to the clients who need the extra processing power. Keep in mind, though, that any document which could be processed by PrintUI until today will not have any additional fees. Although we are still fine-tuning the complexity scores and defining exactly what the processing fees will be, we are seeing that, in fact, even many of the more complex documents will not incur extra processing fees. Once we finish that process, you will be able to clearly see the complexity score at the time you upload a template and all fees will be clearly documented. If you have high-demand processing needs, let us know, and we’ll explain everything in fuller detail.

What This Means to You

A much improved experience!

  1. You should notice significant improvement in the general responsiveness of PrintUI.
  2. You can upload more complex documents without concern that they might time out.
  3. No additional charges for any existing documents. Documents of the type that PrintUI was able to handle until today will continue to work as they have until today. The only fees that will be applicable are for documents that were far too complex to consider using with PrintUI in the past.
  4. If you have a need to process very long and complex documents, that is now possible. You will have clear information on exactly what the costs will be, so you can be prepared before the actual processing is done.

If you don’t have complex document needs, all the business about complexity score is of no concern to you. No matter what your needs are, you will benefit from the more robust architecture we’ve implemented. We’re very excited about this development. It makes us even more prepared for the future expansion of PrintUI!