Bring a large pot of water to a boil over high heat.
Meanwhile, heat the olive oil in a large Dutch oven over medium heat. Add the onions and cook until softened and translucent.
Add the guanciale and cook until it starts to brown. While it's cooking, chop up the Italian sausage.
When the guanciale starts to brown, add the spicy Italian sausage and break it up further with a wooden spoon. Cook until all the meat has browned.
While the meat is cooking, generously salt the boiling water then cook the pasta until al dente according to package instructions.
Once the meat has browned, turn the heat down to low and add the tomato passata. Tear up the basil and stir it into the sauce. Simmer on low for 10 minutes.
Once the pasta is al dente, reserve 1 cup (250 ml) of pasta water and drain the pasta.
In a small bowl, whisk together the egg yolks, pecorino, a generous amount of freshly cracked pepper, and ¼ cup (60 ml) of pasta water. Whisk until a loose paste forms.
Add the pasta to the tomato sauce and toss until coated. Turn off the heat and add the egg yolk mixture. Quickly toss everything around until a rich, creamy sauce forms. If the sauce is too thick, add a bit more pasta water.
Serve immediately with freshly grated pecorino, cracked black pepper, and basil (optional).