Slice bacon into thin slices and cook on stove top until cooked. Drain bacon from grease on paper towels and set aside. Reserve some grease for cooking onions in step 2.
Chop onion finely and cook diced onion in a reasonable amount of bacon grease (1 or 2 tablespoons) for 2-3 minutes over medium-high constant stirring to avoid burning.
Slice the garlic and add it to the onions, after the onions have cooked for a couple of minutes. Cook garlic and onion together for 2 more minutes and remove them from the pan, using slotted spoon. Discard the grease.
Place the same pan (where you cooked onion and garlic in bacon grease) back on high heat, pour in the white wine (or stock) to deglaze the pan. Stir, scraping the bits off the bottom of the pan. Add ½ cup chicken stock. Return bacon, onion and garlic back to the pan. Let simmer covered over low heat, do not let too much liquid (chicken stock) to evaporate.
Chop the parsley. Crack eggs into a large bowl. Add Parmesan cheese and chopped parsley to the eggs. Leave a little Parmesan and parsley out for a garnish. Mix well with a fork.
Cook pasta in a large pot of boiling water according to pasta instructions, al dente. Drain the pasta and add very hot pasta to the egg mixture and mix thoroughly. Then add bacon, onion, and garlic mixture to the pasta, mix again. Add 2 tablespoons of butter to mix. Salt and pepper to taste and garnish with grated Parmesan cheese and chopped parsley.