Use datomic transaction to make sure position is incremented
Remove next-vacant function