Во-вторых, что у них на бэке... Начнем с того, что они долгое время хранили все в... Redis. Они, судя по всему, очень удачливые сукины сыны.
Это отчасти объясняет то, что у них нет namespace'ов в API.
Потом они решили, что дальше так нельзя и надо сложить данные в Postgresql. И знаете что они сделали? Они пропустили шаг с ORM и пошли еще дальше.
Взяли JOOQ (это такая либа для описания SQL в виде собственного DSL) и засунули его в свою Java. Т.е. они пишут запросы на JOOQ, который компилируется во время выполнения в SQL.
Кстати, у них есть вакансии постгревых DBA с релокацией в Пермь :)
Это отчасти объясняет то, что у них нет namespace'ов в API.
Потом они решили, что дальше так нельзя и надо сложить данные в Postgresql. И знаете что они сделали? Они пропустили шаг с ORM и пошли еще дальше.
Взяли JOOQ (это такая либа для описания SQL в виде собственного DSL) и засунули его в свою Java. Т.е. они пишут запросы на JOOQ, который компилируется во время выполнения в SQL.
Кстати, у них есть вакансии постгревых DBA с релокацией в Пермь :)
И самое интересное. На конференции выступал разработчик из Stripe. Stripe - карточный процессинг, самый дорогой выпускник Y-Combinator с оценкой в $35b. Основной их фишкой с самого начала был самый легкий онбординг в индустрии. From developers to developers. Лучшая документация, лучшее версионирование api.
Мне немного удалось пообщаться с докладчиком. Знаете какой у них стек?
Ruby + mongoDb. И, кажется, vertica для аналитики (он ни разу не слышал про ClickHouse)
Но не просто Ruby и не просто MongoDb. Они и то и то допилили.
На вопрос "как же вы без транзакций живете, вы же платежный сервис", был дан ответ "страдаем" :))
Хотел сохранить эту ссылочку до разговора о NOSQL базах данных, но сейчас подходящий момент. Если вкратце - кластер MongoDb может терять до 42% данных.
https://aphyr.com/posts/284-jepsen-mongodb
Да, статья старая. в 2017 году автор написал что в новых версиях стало еще хуже :))
Улучшилось что-то в четвертой ветке - неизвестно, предлагаю желающим проверить на продакшене :)))
Кстати, о Redis. Кластер Redis может терять до 56% данных...
https://aphyr.com/posts/283-jepsen-redis
Выводов не будет, выводы в названии канала.
Мне немного удалось пообщаться с докладчиком. Знаете какой у них стек?
Ruby + mongoDb. И, кажется, vertica для аналитики (он ни разу не слышал про ClickHouse)
Но не просто Ruby и не просто MongoDb. Они и то и то допилили.
На вопрос "как же вы без транзакций живете, вы же платежный сервис", был дан ответ "страдаем" :))
Хотел сохранить эту ссылочку до разговора о NOSQL базах данных, но сейчас подходящий момент. Если вкратце - кластер MongoDb может терять до 42% данных.
https://aphyr.com/posts/284-jepsen-mongodb
Да, статья старая. в 2017 году автор написал что в новых версиях стало еще хуже :))
Улучшилось что-то в четвертой ветке - неизвестно, предлагаю желающим проверить на продакшене :)))
Кстати, о Redis. Кластер Redis может терять до 56% данных...
https://aphyr.com/posts/283-jepsen-redis
Выводов не будет, выводы в названии канала.
PS: Miro отличные ребята. Все что они рассказывают про продуктовую часть своей работы - прекрасно. Я им желаю всяческих успехов и захвата мира. Если мир захватится с такими костылями, мир сам виноват. Перезагрузка матрицы всё почистит :)
По просьбам читателей добавил лайки. Т.к. к старым постам их не прикрутить, лайкайте все посты про поездку в Пермь тут.
PS: Дуров, лайки в твоем телеграмме без поллитра не прикрутишь. Шейм он ю
PS: Дуров, лайки в твоем телеграмме без поллитра не прикрутишь. Шейм он ю
Запись моего доклада на highload 2019 включили в общий плейлист, перезалив оригинальный ролик. Теперь там отдельный счетчик просмотров и лайков. #attentionwhore
Для тех кто придумал коллективные твиттеры заготовлена отдельная банка в матрице. Смотришь - текст от имени девушки, а на аватаре довольный москвич с синими волосами. Наверняка еще и рубист.
Только про сбербанк с его рандомом все забыли, как отличился ai от тинькофф
Информация для тех, кто никогда не пробовал валидировать email регекспами :)
Оказывается практически никто не знает, что большенство почтовых сервисов поддерживает адреса формата user+meta@
Это значит, что на адрес user@gmail.com придут письма, отправленные на ящики вида user+tag@gmail.com
Зачем это нужно?
Например, чтобы можно было оставлять один адрес во всех интернет магазинах и баннить их в случае утечек баз. Ну и любая другая логика.
Оказывается практически никто не знает, что большенство почтовых сервисов поддерживает адреса формата user+meta@
Это значит, что на адрес user@gmail.com придут письма, отправленные на ящики вида user+tag@gmail.com
Зачем это нужно?
Например, чтобы можно было оставлять один адрес во всех интернет магазинах и баннить их в случае утечек баз. Ну и любая другая логика.
Забыл дать ссылку на правильный регексп для валидации email :)
http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
И, оказывается, целый сайт про это есть
emailregex.com
http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
И, оказывается, целый сайт про это есть
emailregex.com
И чтобы завершить тему с валидацией email :)
Есть простой прием, которым почему-то никто не пользуется.
Перед добавлением адреса в базу, проверьте домен почты пользователя на наличие mx записи в dns.
У nodejs, например, для этого есть отдельный core модуль:
https://nodejs.org/api/dns.html
Есть простой прием, которым почему-то никто не пользуется.
Перед добавлением адреса в базу, проверьте домен почты пользователя на наличие mx записи в dns.
У nodejs, например, для этого есть отдельный core модуль:
https://nodejs.org/api/dns.html
Хорошая причина. Многое объясняет (с)
С нетерпением жду, когда автору напихают за богатых белых мужчин...
С нетерпением жду, когда автору напихают за богатых белых мужчин...