Concept Flow - Many-to-many with GSI overloading
Write item with PK, SK, and GSI keys
Store item in main table
GSI indexes item by GSI PK and GSI SK
Query main table by PK and SK for one side
Query GSI by GSI PK and GSI SK for other side
Combine results to get many-to-many relationships
Items are stored with primary keys and overloaded GSI keys to represent many-to-many links. Queries use main keys or GSI keys to find related items from either side.