In order to understand the stratum protocol, it might be helpful to understand what came before it, which was the RPC protocol. RPC stands for Remote Procedure Call. It means the mining software continuously queries the mining pool to see if any of the mining parameters have changed, often multiple times per second. It does this by sending an HTTP request. This is very wasteful and inefficient, given that the mining parameters typically only change every 10 minutes on average.
The Stratum protocol, on the other hand, avoids continuously spamming the pool with requests by establishing a persistent TCP connection with the mining pool. (It's like phoning someone and keeping the line open.) Once the link has been opened the mining pool sends the current mining parameters to the miner. The TCP link is kept open, and whenever the mining parameters change, the mining pool simply sends them down to the miner.
The Stratum Proxy is like an interpreter that speaks two different languages. When it starts it establishs a link to the mining pool at http://mvis.ca:8090 using the stratum protocol to obtain the relevant mining parameters. At the same time, it also configures itself as an RPC Server and begins listening for RPC requests from your mining software. It provides the necessary mining parameters to your miner when asked, and receives share submissions from your miner and passes them up to the pool. Your mining software will think it is connected directly to the mining pool.
The basic idea is that you are awarded tokens on a regular basis, every 4 hours, regardless of whether the pool mines a block or not. This is in contrast to the Proportional payout scheme used by a lot of pools, where you only get tokens when the pool mines a block.
If the mining pool hits a run of bad luck and doesn't mine a block in a while, a portion of your rewards may be held back depending on the current pool balance, but it will be kept on your account and paid back later when the pool is having better luck.
The Pool Token Balance is where your payments come from and where mint rewards are deposited to. This is what makes it possible for the pool to payout on a regular time schedule, even when it has not mined a block. The idea is that hopefully the payments and the rewards will balance out. I initially seeded the pool account with 150 of my own tokens to kick things off.
A holdback is when tokens that you are owed are transferred into a special holding account instead of being paid out to you. This happens when the pool balance runs low due to a spell of bad luck.
Remember that as a miner, your token rewards are calculated assuming that the mining pool will be able to mine blocks at a perfectly consistent rate, but of course it doesn't work that way in real life. The actual profit of the mining pool is subject to variance, or to put it more simply, luck. If the mining pool has a run of bad luck and doesn't mine as many blocks as expected, the pool token balance can run low. When this happens, a portion of your mining rewards will be held back and put in a special holding account. Later, when the pool has better luck, the tokens will be paid back to you.