1. A method comprising: dividing a plurality of ride intent objects into candidate sets, wherein: each ride intent object defines ride preferences of a respective car pool user; and each candidate set is associated with a respective ride matcher object that specifies a plurality of ride preferences that ride intent objects in the candidate set must include, the plurality of ride preferences forming a subset of less than all the ride preferences of any particular ride intent object in the candidate set; locking the ride intent objects such that only a ride matcher object associated with a candidate set containing a particular ride intent object can perform matching on the particular ride intent object while the particular ride intent object remains locked, wherein unlocked ride intent objects are available for matching by any ride matcher object, and wherein the same ride preference is specified by at least some of the ride matcher objects; matching, by each ride matcher object and based on ride preference values, ride intent objects in a respective candidate set to other ride intent objects in the same candidate set; identifying, based on ride preference value, a plurality of ride preferences in a first ride intent object that match a corresponding plurality of ride preferences in a second ride intent object, wherein ride preferences are determined to match when: there is an exact match between respective values of a first of at least two ride preferences for the first ride intent object and the second ride intent object; and respective values of a second of the at least two ride preferences for the first and the second ride intent objects are within a predetermined threshold of similarity; assigning different weights to corresponding ride preferences in each ride intent object; calculating a sum of the weights associated with the matching ride preferences; determining that the first ride intent object matches the second ride intent object when the sum of the weights exceeds a predetermined weight threshold; and grouping the plurality of ride intent objects into a plurality of ride intent sets based on the matching, wherein each ride intent set is a subset of a respective candidate set that contains the ride intent objects of the ride intent set.