Cook pasta in a large pot of salted water until al dente. Reserve 1 cup of pasta water, then drain and set aside.
- In a large skillet over medium heat, cook chopped bacon until crispy. Remove and set aside, leaving drippings in the pan.
- Add olive oil or butter to the pan if needed. Cook chicken until golden and cooked through. Season with salt and pepper, then remove and set aside.
- Add garlic (and onion, if using) to the pan. Sauté for 1 minute until fragrant.
- Reduce heat to low. In a bowl, whisk together eggs, cream, and Parmesan cheese.
- Return drained pasta to the pan. Toss with garlic and stir continuously while slowly adding the egg mixture to avoid scrambling.
- Add cooked chicken and bacon back to the pan. Stir to combine, adding reserved pasta water a little at a time until sauce reaches desired consistency.
- Season with salt and pepper to taste. Garnish with chopped parsley and additional Parmesan if desired. Serve hot.