One phone for fourteen clerks.
Picture an office with a single phone line and fourteen clerks. If each needed the line all the time, you would need fourteen lines. But each call lasts a few seconds and nobody talks all day. An operator who connects the calls in order solves it with one line, and nobody notices the wait.
A store's checkouts work the same way. Each sale makes short queries to the management system, the ERP: price, stock, invoice. Between sales, the checkout does not use the ERP. The ERP license, however, was counted per connected terminal.
The proxy is the operator: it sits between the checkouts and the ERP, keeps a single connection open and passes the requests in order, with a queue for peaks and a cache for what repeats.
The Black Friday sum did not add up.
It was not a performance problem. The ERP could handle the volume; what did not fit was the license-counting rule, in the budget and in the deadline. Without a technical solution, the store would open Black Friday with fewer checkouts.
The sum, days before
A go-between nobody sees.
We learned the protocol the checkouts use to talk to TOTVS, mapped the critical operations and wrote a proxy in Go, a language good at many simultaneous conversations that compiles into a single program that is easy to install. It has four parts:
Single connection. The checkouts connect to the proxy as if it were the ERP; the proxy holds the licensed connection.
Queue. When two checkouts ask at the same time, one waits fractions of a second. The queue absorbs the peaks.
Cache and connection pool. What repeats (the same price looked up many times) comes back faster, and the connection is reused.
Monitoring and recovery. Every operation is logged, and if the connection drops the proxy reconnects on its own.
The checkouts were not changed. For them, nothing changed.
From fourteen licenses to one.
Without the proxy
With the proxy
In practice: the store kept the expansion and did not buy 13 licenses. The gain came from looking at how the checkouts use the ERP, not just how many there are.
“We were about to cancel the checkout expansion for Black Friday. In a few days, Stickybit solved what seemed impossible.”
IT, WebContinental (translated)When a queue in front solves it.
It works when
- operations are short and use is intermittent;
- the protocol between terminals and the system can be understood;
- the license contract allows sharing the connection;
- peaks are predictable and the queue can absorb them.
It does not work when
- each terminal uses the system all the time (the queue only grows: see the specimen);
- the contract forbids this kind of sharing;
- the real problem is ERP capacity, not the number of licenses.
The same design comes back with AI assistants. When they start querying stores for price, stock and shipping, the questions will arrive in bursts, from many agents at once. A layer in front of the ERP, with a queue, a cache and a log of every query, protects the management system and answers fast. That is our reading, not part of the 2019 case; it is what the page on WebMCP discusses.
A go-between. It sits between two systems and passes requests from one to the other, and can organise, cache and log what goes through.
The waiting order when several ask at the same time. It handles short peaks; it does not fix continuous use above capacity.
The company's management system: stock, prices, invoices, finance. Here, TOTVS.
Where this could be wrong.
No published times
The case reports zero incidents but did not publish how long each sale waited in the queue. The specimen shows the calculation, not the measurement.
Read the contract
How licenses are counted varies by vendor and contract. Before repeating the idea, check what your contract allows.
A queue has a ceiling
If the checkouts use the ERP more than the connection can handle, the wait grows without end. The design holds for intermittent use.
One point in the middle
Everything goes through the proxy. It recovers on its own, but it is one more piece that has to be up.
Is there a sum that does not add up in your store?
We start with the free reading: within 24 hours, what an AI assistant finds when it visits your store. If the problem is something else, we talk from there. (Service in Portuguese, for Brazilian stores.)
← Agent-ready e-commerce · stickybit.com.br
- Original WebContinental case (2019): 14 checkouts, 1 TOTVS license, Go proxy with queue, cache, connection pool, monitoring and automatic recovery; no change to the checkouts; Black Friday with no incidents.
- WebContinental, home-appliance online store · Go, the proxy's language.
- The specimen uses the simplest queue from queueing theory (M/M/1): average wait = load ÷ (1 − load) × service time.