если a, b, c и d, e, f от одного клиента - то клиентское по укажет, что для e предыдущее d, а для d предыдущее c, а для c - b
если a, b, c и d, e, f - с разных несинхронизованых устройств или от разных юзеров - то для b предыдущее a, а для a - предA, для e - d, для d - предA
при этом идентификатор сообщения можно строить как идОтвета_меткаВремениСолнечнойСистемы_рандомныйСуфикс - тогда по этим айдишникам можно даже сортировать ответы разных пользователей
и тогда за предA первым будет следовать a или e в зависимости от метки глобального времени, указанного клиентом и пораждать две цепочки
порядок сообщений между двумя разными цепочками не важен, но раз вам упёрлось их в единый линейный список впердюлить (вы на форуме тоже все сообщения разных топиков линеризируете??) - можно поверить глобальному времени с отправившего клиента (и получить предА-d-e-a-b-c-f например)