Cook the rice according to package instructions until it's tender. Set aside to cool.
In a large pot, add the pork shoulder chunks and cover them with water. Bring to a boil, then reduce the heat and simmer until the pork is cooked through and tender, about 45 minutes to 1 hour.
Once the pork is cooked, remove it from the pot and let it cool slightly. Reserve the cooking liquid.
In a skillet, heat a little oil over medium heat. Add the chopped onions, bell pepper, and garlic. Cook until softened and lightly browned, about 5-7 minutes.
In a large mixing bowl, combine the cooked rice, cooked pork (remove any bones or excess fat), sautéed vegetables, green onions, salt, black pepper, cayenne pepper, paprika, and thyme. Mix well to combine.
Using a meat grinder or food processor, grind the mixture until it's finely minced. You can also pulse it in batches if using a food processor.
If the mixture seems dry, add a little bit of the reserved cooking liquid or chicken/pork broth to moisten it.
If you're using hog casings, stuff the mixture into the casings using a sausage stuffer, following the manufacturer's instructions. Alternatively, you can simply form the mixture into patties or balls without casings.
If making boudin balls, shape the mixture into golf ball-sized balls and set them aside.
Set up a breading station. Place the flour in one shallow dish, the beaten eggs in another shallow dish, and the breadcrumbs in a third shallow dish. If desired, you can season the flour and breadcrumbs with Cajun seasoning for extra flavor.
Roll each boudin ball in the flour, shaking off any excess. Then dip it into the beaten eggs, allowing any excess to drip off. Finally, coat the ball evenly in breadcrumbs, pressing gently to adhere.
Heat oil in a deep fryer or heavy-bottomed pot to 350°F (175°C).
Carefully add the boudin balls to the hot oil in batches, being careful not to overcrowd the pot. Fry until they are golden brown and crispy, about 3-5 minutes. Remove with a slotted spoon and drain on paper towels.