We currently have a seat-based licensing model, and in the future we’re looking to move to a token-based model. In both cases our customers are sold a limit, either max concurrency or max total usage. It would be nice to have an option for an overdraft facility where the user can temporarily exceed their limit up to some new limit and it gets recorded as such so that we can later react to this with a license review, extra charges, or whatever.
What is a good way to implement such a scheme? I am initially thinking either a special overdraft meter attribute that we increment when the standard one runs out; or just metadata saying that overdrafts are enabled to a certain limit and the application writes the amount it overdraws by to the activation metadata. Is there something cleverer that can be done?