Один SNS топик может иметь большое количество подписчиков. Где-то в своем сервисе ты публикуешь сообщение для топика и все подписчики получают его. Таким образом, я бы разделил каждый топик для своего типа нотификации. Но ты не можешь пушить больше, чем 1 сообщение за 1 вызов api.
Советую использовать SQS queue, там есть batch push of messages. Кроме того создать Lambda, кот будет вызываться каждый раз как в SQS будут messages. Lambda может забирать эти сообщения из SQS и отправлять разным бакэндам, на основе, например какого-либо поля в сообщении. Также нужно deadletter sqs queue, для тех сообщений, которые не были обработаны по каким-то причинам и остались в main queue.