I keep a list of people interested in a pup, either from a specific combination or just a pup from me. After I do a breeding, then I will take deposits for the litter, up to 6 total, 3M and 3F. And I continue to maintain a list of other interested people. Once the litter is born, I will accept deposits for all the pups based on gender.
This works for me because it allows me to change my mind at the last moment about a breeding, either change the sire, don't do it at all, etc. I could do that even if I had deposits on the breeding, but I'd rather not deal with sending them back. And on occasion I will push a breeding back another 6 months because the heat cycle coincided with a competition I wanted to go to, or the birth date of the litter conflicted with something else, etc. Same for only taking a limited number of deposits. This way I'm not having to deal with sending them back because I accepted 5 deposits for Males and only had 2. Sometimes it doesn't work out, but generally it does. Puppies are still placed based on the best home for them, and if I don't feel I have the right pup for someone then they get their deposit back, or can apply it for a future litter. But a deposit does mean if you are a working home, and I have a working pup, you will get the pup vs someone else who came along when the pups were 7 weeks old and wanted that same pup.