Roast the tomatoes. Start by roasting the tomatoes and garlic. Preheat the oven to 425 degrees F and line two large baking sheets with parchment paper. Slice each tomato in half lengthwise and spread out across the prepared baking sheets in a single layer. Add the garlic. Drizzle with approximately 1 tablespoon of olive oil and season liberally with salt and pepper. Roast for approximately 35-45 minutes. Once the tomatoes have finished cooking, remove them from the oven and allow them to cool.
Caramelize the onion. Heat 1 tablespoon of olive oil in a large pot or Dutch oven over medium heat. Add one of the chopped onions to the pot and mix well to combine. Allow the onion to cook for approximately 25 minutes, or until they are fragrant, mushy and golden brown. Stir often.
Blend the tomatoes and onion. Add the roasted tomatoes, roasted garlic, their juices, and the caramelized onions to the bowl of a large high-speed blender or food processor. Pulse until blended, but not completely pureed (imagine the consistency of canned tomato sauce, but perhaps a little thicker). Set aside.
Prepare the meatballs. In a large mixing bowl, use your hands to thoroughly combine the ground meat with the minced onion, garlic, al dente rice, fresh herbs, salt, pepper, cayenne (optional), and eggs. Set aside.
Prepare the soup base. Heat the remaining tablespoon of olive oil over medium heat in a large heavy-bottomed pot. Add the remaining chopped onion, and cook for approximately 5 minutes, or until starting to soften. Sprinkle with a pinch of salt. Add the carrots and celery, mixing well to combine. Cook for an additional 5-7 minutes, stirring often. Add the potatoes, and continue to cook for an additional 3-4 minutes.
Add the homemade tomato sauce and broth. Add the blended garlic tomato sauce to the vegetables and mix well to combine. Allow the tomato sauce to cook with the onions for 3-4 minutes before adding the low-sodium chicken broth (or water) to the pot. Increase heat to high and cover. Bring to a boil before reducing heat to low. Simmer for approximately 15 minutes while you roll the meatballs.
Make the Meatballs. Use your hands to form meatballs of approximately equal size. If the mixture starts to stick to your hands, dampen your palms with a little water.
Cook the meatballs. Gently add the meatballs to the simmering soup, one at a time, adding more stock to the pot, if necessary, but taking care not to overflow your pot. Cover and simmer over low heat for approximately 30 minutes.
Garnish and serve. After the meatballs have finished cooking, stir in the fresh chopped cilantro and lime juice. Enjoy!