Пятничное чтиво
Maintaining 65k open connections in a single Ruby process
Соеденив вместе puma, rack и hijacking получим развлечение на вечер и статью, в которой автор подробно рассказывает как с помощью этих вещей добиться обработки 65523 открытых коннекшенов. В конце статьи - ссылка на гист с полным кодом (всего 55 строк кода с комментариями).
Из проблем: такой код съедает 350 мб памяти, что много (nginx для примера потребляет 2.5 мб), race conditions проблемы (поправились с помощью использования
Если хотите разобраться как подобные штуки работают и как еще можно ускорить приложение - маст рид.
—————————————
Architecture of a high performance GraphQL to SQL engine
В первый раз, когда увидел graphQL подумал, что было бы круто получить сервис с 1 в 1 доступом к базе. Спустя 3 года появилась статья, которая описывает как работает Hasura, сервер-прослойка между клиентами и постгресом. Стоит обратить внимание, что сервис написан на хаскеле, по бенчмаркам быстрее prisma и postgraphile. Надеюсь что подобные сервисы смогут в будущем элегантно решить проблему кастомной логики.
Русский перевод
—————————————
Six Great Reasons to Build Service Architectures in Ruby with Eventide
За eventide слежу давно. Даже упоминал этот проект пару раз в выступлениях. Для тех кто не в курсе, eventide - тулкит для построения ES систем на руби. Много фич, огромная и полная документация. В статье выше описываются 6 причин, почему eventide стоит попробовать. Для меня причины спорные, но для ознакомления стоит прочитать.
Рад, что таких проектов становится больше. Так же стоит посмотреть на sequent и RailsEventStore. Круто, что библиотеки не просто появляются, но и развиваются. А так же, появляется больше ES ориентированных конференций в мире руби.
Maintaining 65k open connections in a single Ruby process
Соеденив вместе puma, rack и hijacking получим развлечение на вечер и статью, в которой автор подробно рассказывает как с помощью этих вещей добиться обработки 65523 открытых коннекшенов. В конце статьи - ссылка на гист с полным кодом (всего 55 строк кода с комментариями).
Из проблем: такой код съедает 350 мб памяти, что много (nginx для примера потребляет 2.5 мб), race conditions проблемы (поправились с помощью использования
http://amp.gs/vXFN
и http://amp.gs/vXFA
).Если хотите разобраться как подобные штуки работают и как еще можно ускорить приложение - маст рид.
—————————————
Architecture of a high performance GraphQL to SQL engine
В первый раз, когда увидел graphQL подумал, что было бы круто получить сервис с 1 в 1 доступом к базе. Спустя 3 года появилась статья, которая описывает как работает Hasura, сервер-прослойка между клиентами и постгресом. Стоит обратить внимание, что сервис написан на хаскеле, по бенчмаркам быстрее prisma и postgraphile. Надеюсь что подобные сервисы смогут в будущем элегантно решить проблему кастомной логики.
Русский перевод
—————————————
Six Great Reasons to Build Service Architectures in Ruby with Eventide
За eventide слежу давно. Даже упоминал этот проект пару раз в выступлениях. Для тех кто не в курсе, eventide - тулкит для построения ES систем на руби. Много фич, огромная и полная документация. В статье выше описываются 6 причин, почему eventide стоит попробовать. Для меня причины спорные, но для ознакомления стоит прочитать.
Рад, что таких проектов становится больше. Так же стоит посмотреть на sequent и RailsEventStore. Круто, что библиотеки не просто появляются, но и развиваются. А так же, появляется больше ES ориентированных конференций в мире руби.