6 tablespoons olive oil, divided
1 leek, white and pale-green parts only, chopped
½ small fennel bulb, finely chopped
½ small yellow onion, finely chopped
2 celery stalks, thinly sliced
4 cups low-sodium vegetable or chicken broth
2 small carrots, peeled, thinly sliced lengthwise on a mandoline
1 cup fresh shelled peas or fava beans (from about 1 lb. pods) or frozen
Kosher salt and freshly ground black pepper
½ cup fregola, ditalini, or other tiny pasta
1½ cups (lightly packed) fresh flat-leaf parsley leaves
½ shallot, finely chopped
2 red pearl onions or ¼ small red onion, thinly sliced
Shaved Parmesan (for serving)
Heat 2 Tbsp. oil in a large heavy pot over medium heat. Cook leek, fennel, yellow onion, and celery, stirring occasionally, until softened but not taking on any color, about 5 minutes. Add broth; bring to a boil, reduce heat, and simmer until vegetables are just tender, 10–15 minutes.
Add carrots and peas and simmer until carrots are just tender, about 5 minutes; season with salt and pepper.
Meanwhile, cook pasta in a large pot of boiling salted water, stirring occasionally, until al dente. Drain and add pasta to soup.
While pasta is cooking, process parsley and remaining 4 Tbsp. oil in a food processor to a coarse paste, transfer to a small bowl, and mix in shallot. Season pesto with salt and pepper. Serve soup topped with pesto, pearl onions, and Parmesan.