I use the filesystem to avoid any race conditions, by touching receipt files and checking for their existence.