To make the sauce: Heat olive oil in a large pot over medium high heat. Saute onion until translucent and soft, around 6-8 minutes. Add garlic, pinch of caraway seeds and tomato paste, and saute another 2 minutes.
Add canned tomatoes, harissa and water, and bring to a low simmer. Cook for 30-40 minutes, covered over low heat. The tomato sauce will be done when the tomatoes have broken down and the sauce has reduced slightly and is a deep color.
To make the meatballs: Combine ground lamb, mint, parsley, garlic, eggs, salt and lemon zest in a large bowl. Using your hands, combine until mixed throughout, but take care not to overwork the meat.
Form tablespoon-sized meatballs, using your hands or a cookie scoop. Roll gently and place on a plate until ready to fry.
Heat vegetable oil (or other neutral oil) over medium heat in a large saute pan. Fry meatballs in batches until brown, rotating them to ensure they have been browned on all sides.
Remove from pan. You may need to add a little more oil in between batches.
Add the lamb meatballs to the sauce (as well as additional liquid from frying) and allow to simmer another 15 minutes.
Serve with couscous and chopped fresh herbs if desired.