Design a license validation system for Roblox that supports two distinct operations: (1) license activation, which must be strongly consistent to enforce a per-license device limit, and (2) license validation, which may be eventually consistent and must serve very high read QPS with low latency. The system should handle millions of licenses, each allowing up to N device activations. Activation is a write-heavy, transactional flow: when a user enters a license key on a new device, the system must atomically check the device cap and either record the new device or reject with a clear error. Validation is read-heavy: on every game launch the client supplies the license key and device ID and expects an allow/deny response in < 50 ms. You must shard the dataset to avoid hot spots, rate-limit abusive clients, cache validation responses, and survive regional outages. Walk through the data model, API design, sharding strategy, consistency choices, caching layers, rate-limiting scheme, and how you would detect and block brute-force probes that cycle through millions of keys.