Many-to-many как избежать Race conditions?
Как можно избежать этого ?
Все уже придумано до нас. Лет эдак за 50.Делать в одной транзакции. И проверку и добавление подписки.
Адекватным решением видится создать прослойку, которая будет обрабатывать обращения потоков друг за другом, т.е. некое бутылочное горлышко, которое не будет позволять потокам работать, как потоки. Тогда и race condition будет невозможен.