Contest objects are currently processed by fetching the object, changing it, and then saving it back to the database. This has the chance for a rare possibility of two simultaneous requests overriding the data stored by another. Contest objects should instead store a delta, and when it is saved, apply the delta on to the fetched database version instead.