## Is your feature request related to a problem?

/api/person/merge currently performs a merge of two people. This logic is duplicated between app and plugin-server, badly.

## Describe the solution you'd like

Avoid duplicating, send a message to plugin-server

## Describe alternatives you've considered

Duplicating tricky and race-condition-heavy logic.

## Additional context

cc @yakkomajuri this is worth adding to team extensibility backlog - pretty sure this will cause bad correctness issues.

#### *Thank you* for your feature request – we love each and every one!

posthog/api/test/test_person.py
person_factory(
                team=self.team, distinct_ids=["distinct_id"], properties={"email": "someone@gmail.com"},
            )
            person_factory(
                team=self.team,
                distinct_ids=["distinct_id_2"],
                properties={"email": "another@gmail.com", "name": "james"},
            )
            person_factory(team=self.team, distinct_ids=["distinct_id_3"], properties={"name": "jane"})
            response = self.client.get("/api/person/?search=has:email")
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 2)
            response = self.client.get("/api/person/?search=another@gm")
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 1)
            response = self.client.get("/api/person/?search=another@gm%20has:invalid_property")
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 0)
            response = self.client.get("/api/person/?search=another@gm%20has:name")
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 1)
            response = self.client.get("/api/person/?search=_id_3")
            self.assertEqual(response.status_code, status.HTTP_200_OK)
            self.assertEqual(len(response.json()["results"]), 1)
        def test_properties(self) -> None: