For the meatballs
3 pounds boneless pork shoulder, finely hand-chopped, or coarsely ground
1 1/2 cups finely diced water chestnuts or jicama
1 cup diced yellow onion
1 cup finely diced shallots
1/2 cup chopped scallions, white and light green parts only
cup fried shallots, coarsely chopped
1/4 cup fresh cilantro
2 tsp kosher salt
2 tsp freshly ground black pepper
2 Tbsp light soy sauce
To make the sauce, in a large, wide, high-sided pot, combine the pork and 2 cups of the stock and bring to a boil over high heat. Decrease the heat so the liquid is at a steady simmer and simmer for 15 minutes, skimming any scum that forms on the surface. Remove from the heat, let cool slightly and transfer the mixture to a blender or food processor. Process until smooth. Set aside.
Return the empty pot to the stove top, add the oil and heat over medium heat. Add the garlic and cook, stirring occasionally, for 2 minutes, until lightly toasted. Add the red pepper flakes and annatto and cook, stirring, for 30 seconds more. Add the shallots and onions and cook, stirring, for about 5 minutes, until softened.
Add the stir-fry sauce, ketchup and soy sauce and stir to combine. Pour in the pureed pork mixture and the remaining 2 cups stock and mix well.
Increase the heat to high and bring the mixture to a boil, then decrease the heat until the liquid is at a steady simmer. Cook, stirring occasionally, for 15 minutes.
While the sauce is simmering, make the meatballs. In a large bowl, combine all of the ingredients. Using your hands, gently but thoroughly mix the ingredients together. Take care not to overwork the mixture or the meatballs will be tough. Form the mixture into loosely packed balls about 2 inches in diameter.
Add the meatballs to the simmering sauce. The meatballs can be crowded in the pan but they should all be below the surface of the sauce. Cook, without stirring, for 45 minutes, until they are cooked through. Do not let the liquid boil, or the meatballs will break apart. To test if the meatballs are ready, retrieve a meatball and cut it open; it should no longer be pink in the center.
Remove from the heat and serve right away. Or, if you're making the meatballs in advance, let cool and then reheat them fully in the sauce before serving. Cooling them in the sauce will prevent them from drying out.