If using a whole chicken, place the chicken, onion, carrots, celery, bay leaf, and peppercorns in a large pot. Cover with water (about 12 cups). Bring to a boil, then reduce heat and simmer for 1 to 1.5 hours, or until the chicken is cooked through. Skim off any foam that rises to the top during the first 30 minutes.
Remove the chicken from the pot and set aside to cool. Strain the broth through a fine-mesh sieve into a clean pot, discarding the solids. You should have about 8 cups of broth.
Shred the cooled chicken meat, discarding the skin and bones. Set the meat aside.
Bring the strained broth to a simmer. Add the rice or orzo. Cook according to package directions, usually 15 to 20 minutes for rice or 8 to 10 minutes for orzo, until tender.
While the rice/orzo cooks, prepare the Avgolemono. In a medium bowl, whisk the eggs vigorously until they are light and frothy. Slowly whisk in the fresh lemon juice.
Temper the egg mixture: Ladle about 2 cups of the hot broth, one ladleful at a time, into the egg-lemon mixture while whisking constantly. This prevents the eggs from scrambling.
Reduce the heat under the soup pot to low. Slowly pour the tempered Avgolemono mixture into the soup pot in a thin stream, stirring gently and continuously. Do not let the soup boil after adding the Avgolemono.
Stir in the shredded chicken meat. Heat through gently for 2 minutes. Taste and adjust seasoning with salt and pepper.
Serve immediately, garnished with fresh parsley.
Notes
To prevent the Avgolemono from curdling, keep the soup heat very low when adding the tempered egg mixture. The soup should be steaming, not boiling.
If you use store-bought broth, use a high-quality, low-sodium version and add extra aromatics like a bay leaf while heating.
You can substitute orzo pasta for rice, or use both for a heartier soup.