Let’s take Nikki as an example again. This time, she’s not looking for a toaster on Amazon. She’s tired of Amazon. She wants to go straight to eHarmony. And then, we have a couple more eHarmony users, such as Jeb, Jon, and Nick.
First we need to consider only those that meet Nikki’s criteria. In this case, that’s only Jeb and John. For us to make a match, Nikki also needs to meet the criteria specified by Jon or Jeb. In this particular case, that’s only Jon. So what are some of the criteria that we are talking about? So this completes the first part of our matching system.
We also have a dedicated team doing extensive research in data science and clinical psychologies to define happy relationships and what personality profiles, what type of personality profiles were most compatible in those relationships
In the second step, we also account for a sophisticated personality traits that a user conveys to us by filling out a long list of questionnaires. Normally, if you meet someone at the bar or at work, a lot of you are, I’m not sure, but, or at a conference like MongoDB World. Hopefully, you’re looking for your soulmate here in addition to Mongo. You probably wouldn’t start by asking them how well did you behave under the stress? That’s not a very good pickup line is it? So with eHarmony, however, we account for all these type of factors behind the scenes seamlessly. Before we accept any user to our matching system, we ask them to complete a long list of questionnaires, about 150 of them, related to their personality, their values, their beliefs, and their attributes. And then, we create a very unique personality profile about you that we’re going to use it later in our matching system. And then we model them as mathematical formulas.
There’s a lot of mathematical that we use in our models. So we call them our CMS models, and that is our secret sauce. It’s a very complicated secret sauce by the way. So to sum up the entire process, when you’re looking for potential compatible partners for Nikki, for example, as the first step, we run reciprocal complex multi-attribute queries to identify potential matches for Nikki. And we only retain the candidates where the criteria are met both ways, or bi-directionally. As a second step, we take the remaining candidates, and we run them through a slew of compatible models that we have accumulated over the last 14 years. Only those candidates who pass the threshold set by the CMS models are retained and positioned as potential compatible matches for Nikki. So, as you can see, the entire process sounds so romantic, isn’t it? I hope so.
These are simple things like age, distance, religion, ethnicity, income, or education
So let’s talk about some fun techie stuff. So, here’s what our old system looked like, 10 plus years ago, before my time, by the way. So the CMP is the application that performs the job of compatibility matchmaking. And eHarmony is a 14 year-old company at this point. And this was the first pass of how the CMP system was architected.
In this particular architecture, we have a number of different CMP application instances that talk directly to our central, transactional, monolithic Oracle database. Not MySQL, by the way. We perform a lot of complex multi-attribute queries against this central database. Once we make a billion plus of potential matches, we store them back to the same central database that we have.