Floating License Management
Sell N concurrent seats, not N installs. A floating license enforces a maximum number of simultaneous active users across any number of installed machines — the model teams actually want when the software runs on shared workstations, lab machines, or a rotating remote workforce.
Node-locked doesn't fit every team
A per-machine (node-locked) license makes sense for a single-user desktop app. It breaks down for a design studio with 5 licenses and 12 workstations where nobody uses the tool constantly — node-locking forces them to either overbuy seats or manage licenses machine-by-machine. Floating licensing sells the actual constraint that matters: how many people are using it right now, not how many machines it's installed on.
How it works
Your app calls a checkout endpoint on launch (consumes one seat) and a checkin endpoint on exit or after an idle timeout (frees the seat). PermitCore enforces the seat cap with PostgreSQL row-level locking on the activation counter, so two simultaneous checkout attempts for the last seat can't both succeed — the seat count is never oversold under real concurrent load, not just in the common case.
// .NET SDK var session = client.CheckoutFloatingSeat(licenseKey); // ... user works ... client.CheckinFloatingSeat(session.SessionId);
Built for the shape floating licensing actually needs
Sell seats, not installs
Included from the Starter plan. Free tier available for evaluation.