Apache Thrift
Я реализовывал методы кодирования двоичных целых чисел (целочисленное кодирование и целочисленное кодирование переменной длины Little endian) , которые необходимы для функционирования различных двоичных сериализаций, совместимых с JSON.
Занимался безопасной передачей информации через Rabbitmq:
Проверял как сообщение публикуется и как быстро оно доставляется для принимающих процессов, учитывая задержки и исключая их для опроса.
Отслеживал подписание принимающих процессов по событиям
Поддержка дополнительной информации заголовка. Фильтрация принимающих процессов для добавления информации в базу данных
Поддержка фильтрации сообщений. Подписывал принимающие процессы на получение всех сообщений, фильтровал их по ключам маршрутизации и определенным заголовкам
Поддержка ведения журнала и мониторинга. Отслеживал увеличивающийся размер очереди и указывал на ошибочный прием.
Поддержка пользователей и групп. Контролирование данных на которые процессу предоставлены права.
Поддержка транзакций. Контролирования, что сообщения будудт храниться в памяти до тех пор пока шина сообщений не получит подтверждение того, что сообщение успешно доставлено принимающему процессу.
Поддержка очередей. Контролирование, что сообщение будут храниться в очереди до тех пор, пока не произойдет сигнализация по времени или на самом узле шины сообщений достаточно памяти.
Postgresql
LevelDB
TCP, UDP, Multicast
Raft - это консенсусный алгоритм управления реплицированными журналами. Чтобы повысить понятность, Raft разделяет ключевые элементы консенсуса, такие как
выборы лидеров, репликацию журналов и безопасность, а также более сильную степень согласованности для сокращения числа которые должны быть рассмотрены. Raft также включает новый механизм изменения членства в кластере, в котором используется перекрывающееся большинство для обеспечения безопасности.