Start by finely dicing 3/4 cup of onion into 1/4-inch pieces for the meatball mixture, and separately dice 1/4 cup of onion into 1/2-inch pieces for the braising liquid—keeping them separate ensures proper texture in each component. Peel, core, and cut the apples into 1-inch chunks, then set aside. In a large bowl, combine the ground pork, finely diced onion, minced garlic, breadcrumbs, egg, Dijon mustard, kosher salt, black pepper, and caraway seeds. Mix gently with your hands until just combined—overmixing makes tough meatballs. Form the mixture into 16-20 evenly-sized balls (about the size of golf balls) and place on a plate. I like to chill these for at least 15 minutes if you have time, as it helps them hold their shape better during browning.
Heat 1 tablespoon of olive oil in a large skillet over medium-high heat until it shimmers. Working in batches to avoid overcrowding (which steams rather than browns), place meatballs in the pan and cook for 3-4 minutes per batch, rotating occasionally until they develop a deep golden-brown crust on all sides. Transfer browned meatballs to a clean plate. Don't worry about cooking them through—they'll finish cooking in the braising liquid. I find that browning in batches actually improves flavor because each meatball gets proper contact with the hot pan.
In the same skillet with the browned bits still clinging to the bottom, add a splash more oil if needed and cook the larger-diced onion over medium heat for 3-4 minutes, stirring occasionally, until it becomes translucent and softens. Add the prepared apple chunks and cook for another 2-3 minutes, allowing them to begin to soften and release their juices. This creates a flavorful base that will braise the meatballs beautifully.
Stir the drained and rinsed sauerkraut into the skillet with the apples and onions, mixing well to distribute evenly. Pour in the apple cider and add the maple syrup, stirring to combine. Using a wooden spoon, scrape the browned bits from the bottom of the skillet—these caramelized pieces add deep, savory flavor to the entire dish. Bring the liquid to a gentle simmer.
Nestle the browned meatballs from Step 2 back into the simmering braising liquid, making sure they're mostly submerged in the apple cider mixture. Reduce the heat to low, cover the skillet with a lid, and let cook for 15-20 minutes until the meatballs are cooked through (they should register 160°F internal temperature if you have a thermometer). The low heat ensures the sauerkraut and apples stay tender while the meatballs finish cooking gently in the flavorful braising liquid.
Remove the skillet from heat and taste the braising liquid—add a pinch of salt if needed to balance the flavors. Divide the meatballs, apples, and sauerkraut among serving bowls or plates, ladling the savory braising liquid over everything. Garnish generously with fresh chopped parsley if desired for brightness and color.