So, you are facing a choice of buying a system versus using a service. A tough call!
Really, everything depends on the requirements. There is no one straightforward answer either way. What is good in one situation may be unacceptable in the other. We won’t get into too much discussion about this part of the decision making.
What I want to mention in this quick post is specific to web-to-print.
First of all, a decent web-to-print is computationally intensive
I’m not talking about some text manipulation using a PDF library. I mean something quite complex with multiple user images, texts on paths, clipping paths, conditional formatting, various text effects and transformations. Notice, all that is in the variable part of the template!
A file like this may take a few seconds to open, then every manipulation will take some milliseconds adding to the total time, then generating a JPEG or even worse a PDF file as the final output for printing. We are talking seconds here on a reasonably powerful multi-CPU machine.
The second thing to understand is the peak in usage.
Take a log file of a B2B system serving customers in a particular time zone. I bet there will be 2 humps and the rest will be almost flat.
People come to the office, have coffees, go to meetings. The peak in activity is usually between 09:30-11:30 and 13:30-16:00. It’s only 4,5 hrs out of 24!
80% of your orders will come thru within these 2 short timeslots.
If you think you can serve all your orders using only one server you either going to have very few orders or see people queuing up and some giving up. Too bad. Time to think of the licensing model you signed up to: per site (good), per box (add more CPUs), per CPU (they got you!).
Adding more CPUs solves the problem only to some extent. A 4-CPU machine may only be 50% faster because of all the other bottlenecks. Its cost can be up to 3 times more than a dual-CPU machine. Then here come all the other licenses, unless you are lucky to run it on Linux.
What to ask your vendor
Ignore the sales pitch. Ask the vendor some technical questions and insist on giving you definitive answers and even making them part of the contract.
How long will take to process a template of a certain complexity?
How long will take on a template that is even more complex?
What are the performance indicators on speed of image manipulation?
What is the performance increase if you add 1 more CPU?
What does the licensing say about adding more CPUs?
What is the utilization curve or how does the performance scale with increase in utilization?
Just to expand on this one …
Processing 2 requests at the same time may be 4 times slower, processing 3 may be 9 times slower and so on.
What if they tell you that it all depends and so on?
Ask them for statistics from other sites. They are probably selling you a lemon.
If they finally sold you a lemon and it just won’t work, there is always a workaround