Wednesday, July 25, 2012

[qjhqickv] Take a number

Consider a seemingly simple internet service: You query it; it returns a "ticket" with a number.  The number is guaranteed to be increasing on successive tickets.

The general use case is, two people can compare tickets to see who has earlier priority.  In particular, an independent service (perhaps implemented distributed) which needs to decide on priority does not need to reinvent this wheel; it just offloads the monotonic ordering to this trusted universal ticket-number service.

The tickets are cryptographically signed to prevent forging.  The service takes a user field, and it is appended onto the ticket to prevent someone from stockpiling old tickets.

How would this service be implemented?  High reliability and uptime, high loads (potential for denial-of-service attacks).

Use geographic redundancy, but avoid errors on switch overs.  Synchronized atomic clocks might be one way.

No comments :