In the kitchen sample, we start by splitting a Recipe in Ingredients, then we Aggregate these into shoppinglists (custom aggregation). Then we do some work and convert a ShoppingList into a GroceryBag, which is split into products. The products are then aggregated into a Meal again. Let's give a sample:
Recipe: 1 steak, 20 grams pepper
--> Split into Message[1steak]
--> Aggrgated onto 2 ShoppingLists (2 different types of ingredients): Message[ShoppingList<Meat>[1Steak]] & Message[ShoppingList<Grocery>[20grPepper]]
--> Work to change these to: Message[GroceryBag<Meat>[1Steak]] & Message[GroceryBag<Grocery>[20grPepper]]
--> GroceryBag<Meat> split into Message[1Steak]
--> GroceryBag<Grocery> split into Message[20grPepper]
--> Steak and Pepper need to be aggregated into a Meal, but the SimpleMessageStore decides that the pepper message is already present because it has
the same sequence number as the steak.
You will always get this if you do a custom aggregation and split, because the splitter assigns new sequencenumbers to the message.