In our last blog post, we outlined how TableTab integrates with point-of-sale printers. For most operations, printers serve as the most common fulfillment method. As a result, reliability & resilience for printers is critical. In this blog post, we discuss how TableTab built a robust printer integration solution.
Whenever an order is created, TableTab’s system creates a print job. The creation of a print job is sent to all listening devices (such as terminals) in real-time.
A print job includes order-specific information, alongside print information such as the number of tries to print, time of print, corresponding printer(s), etc.
Ideally, all print jobs would print in one attempt. Sometimes, there is network congestion and printers don’t accept the print. Without automatic retries, the print would fail. By default, all print jobs are retried ten times with an exponential backoff.
Our system keeps track of average retry to spot any anomalies and emerging patterns. If a merchant’s printer requires multiple retries, it typically signals a network issue.
Failure Alert Notifications
In the event that a printer gets disconnected (e.g., ethernet cord is pulled out), all future print jobs will fail. Typically, it’s staff responsibility to realize that orders are not printing. However, by the time they realize it, there could be tens of orders that have not printed - creating a backlog and upsetting customers and staff.
TableTab keeps track of failed print jobs, and if it crosses a threshold, a SMS/text alert is automatically sent to staff, managers, and the TableTab team. The alert also includes tables/orders affected. As a result, staff can respond to printer failures much faster.
We have invested in keeping track of all major printer events. From the time customers place an order, we can track when the print job is created, relayed to the terminal, added to the print queue, sent to the printer, and sent to our servers with an update. As a result, in the event of failures, we can quickly pinpoint where the issues are arising.
Key event logs allow us to map out how the printer integration is performing. We can isolate device-specific issues, network misconfiguration (such as double-NAT), and printer failures (such as overheating, paper, etc).