Heat olive oil in a heavy-bottomed pot over medium-low heat. Add the onion and garlic and cook gently until translucent and lightly browned, about 10 minutes.
Remove from heat. Add the milk, breadcrumbs and fennel seeds. Stir well. Allow the breadcrumbs to absorb the milk.
Make sure the mixture is highly seasoned. Chill 20 minutes in the fridge. This is the base for the meatballs.
Add the meatball base, ground meat, ricotta, fennel seeds and parsley to a large mixing bowl. Crack in two eggs. Mix by hand until well combined. The mixture should be dough-like.
Pinch off 2-3 ounce sized chunks of the meat mixture and roll into balls. Place balls on a plate or baking sheet and refrigerate until they set up, about 2 hours.
For the sauce and cooking
*This sauce needs to be loose because the meatballs are poached in it. During poaching the sauce will reduce and thicken. Just don’t reduce it too much before poaching begins.
Sweat the onions and garlic in olive oil until translucent and lightly browned, about 10 minutes. Deglaze the pot with white wine. Simmer 2 minutes. Add tomatoes, thyme and water. Cover and simmer 30 minutes. Cool slightly. Puree to smooth in a blender.
Poach the meatballs in the sauce at medium-low heat until cooked through, about 30 minutes. Throw in some torn basil at the last minute and stir. Serve meatballs with pasta or bread. Garnish with grated parmesan and parsley.