Коротко про TTL в NoSQL-хранилищах: Redis, MongoDB и Cassandra

Привет, Хабр!
В этой статье мы коротко рассмотрим, как работает TTL в трёх популярных NoSQL-хранилищах — Redis, MongoDB и Cassandra.
Привет, Хабр!
В этой статье мы коротко рассмотрим, как работает TTL в трёх популярных NoSQL-хранилищах — Redis, MongoDB и Cassandra.
Привет! Я Алексей Кабанов, младший разработчик в команде публичного API Т-Инвестиций. Занимаюсь разработкой и поддержкой Java SDK и внутренних сервисов. Изучаю анализ рыночных закономерностей и программную реализацию алгоритмов торговли, построенную на них.
Расскажу о Java SDK для работы с API Т-Инвестиций и покажу, как использовать его для создания торгового робота. Мы сосредоточимся на стратегии, основанной на технических индикаторах, и продемонстрируем, как ее реализовать с помощью новых возможностей SDK.
Современная алгоритмическая торговля предлагает множество инструментов и стратегий, которые могут значительно повысить эффективность торговли на финансовых рынках. В статье покажу, как использовать обновленный Java SDK для создания робота, который будет торговать по стратегии, основанной на технических индикаторах. А еще подробно рассмотрим, как с его помощью можно настроить и протестировать робота, чтобы запустить его на реальном рынке.
За 10 лет, что существует Serverless‑подход, бессерверные функции стали для многих разработчиков чем‑то привычным и удобным. С их помощью можно быстро написать несколько строк кода для реализации конкретной бизнес‑логики и задеплоить, не думая о развёртывании, настройке и обслуживании инфраструктуры. Нужный код запустится автоматически при срабатывании триггера, как это принято в событийно‑ориентированной архитектуре. Но если таких функций в приложении потребуется очень много — что поможет сохранить нужную скорость работы и другие преимущества Serverless?
Меня зовут Сергей Ненашев, последний год я разрабатываю в Yandex Cloud сервис бессерверных функций Cloud Functions. В нашем облаке с ним можно запускать код в виде функции без создания и обслуживания виртуальных машин.
Пожалуй, важнейший процесс в этом сервисе — это обработка внешнего входящего запроса. Чтобы эта конструкция работала с минимальными задержками, нам понадобилось хорошенько продумать архитектуру обработки запросов и применить пару трюков. Я расскажу, как команда пришла к тем решениям, что работают сейчас, а также покажу, на что обратить внимание самим пользователям, чтобы запрос пробегал по всей инфраструктуре не более 10 мс.
Разрабатывая сервис генерации AI курсов, я столкнулся с тем, что мне захотелось решить вопрос с удобным редактированием уроков.
В моем сервисе есть два режима создания курсов - AI режим, это когда ты пишешь промпт или прикладываешь список тем, а нейросеть генерирует контент. Это подходит для самообучения. А второй режим для авторов - ты можешь взять свои наработки, скормить их вместе с промптом модели, а та выдаст результат. Так вот чтобы поделиться с другими юзерами таким курсом, хотелось бы иметь возможность отредактировать ответ модели, дополнить самому, да еще и оформить это все красиво, с заголовками, отступами, списками и прочими украшательствами.
Почитав разные статьи про то, какие есть редакторы, я остановился на TinyMCE.
Мы договорились устно. Всё по-братски. Что может пойти не так?
Всё. Абсолютно всё.
Вы запускаете стартап. Прототип работает, первые пользователи тестируют MVP, впереди демо-день в акселераторе. Один пишет код, другой — тянет связи и питчи. Делёж долей — «когда-нибудь потом». Пока же — драйв, энергия и ощущение, что всё получится.
Но потом наступает «завтра». Один уходит в найм, другой зовёт инвестора, третий хочет «справедливости». А договорённости? Их либо нет, либо они живут где-то в переписке и туманном «вроде договаривались».
Когда на этом фоне начинается конфликт — спасать уже нечего. Ни стартап, ни отношения.
Хранение денежных сумм в базах данных и API: анализ подходов платежных систем
Хранение денег — вещь только на первый взгляд простая, а на деле содержит множество подводных камней. Выбрав не тот тип данных, можно получить неточности в расчётах, возможна путаница при переводе суммы из одной валюты в другую. А если ещё и подключать внешние API, у каждого из которых своя точность для одних и тех же валют, уследить за совместимостью еще труднее.
Разбираем, как решают эти проблемы Stripe, PayPal, Google Wallet и другие платежные системы. Сравниваем три основных подхода: Integer minor units, Decimal base units и String base units.
Ошибки из-за несоответствия типов — самые обидные и распространенные. Аннотации в Python решают это раз и навсегда. В этой статье я покажу, как они делают ваш код безопаснее и красивее
В System Design нет «правильных» решений — только компромиссы. Бюджет, сроки, команда и законы диктуют, какие технологии выбрать, как масштабироваться и когда идти на жертвы. Разберём, почему определение бизнес-ограничений это важный этап System Design и почему они диктуют Айтишникам как и с чем работать.
Telegram продолжает расширять возможности своего мессенджера — в свежем обновлении Bot API 9.1 разработчикам стали доступны удобные инструменты для работы с чек-листами, подарками и рядом других функций.
Рассмотрим их подробнее.
Помимо написания постов в канал, должна быть обратная связь для предложений улучшения канала или идей для новый постов. Для обратной связи часто используются специальные сервисы, которые помогают поддерживать связь с подписчиками канала. Но не всегда хочется давать сторонним сервисам права администратора в канале.
И сегодня мы попробуем не просто использовать такой сервис, а написать свой, который сможем улучшать под собственные требования и полностью контролировать его работу. В этой статье мы напишем и развернем на удаленном сервере Telegram бота, который обладает обратной связью и помогает выкладывать посты.
Команда Spring АйО перевела статью о работе со Spring Debugger и о том, как его применение существенно облегчает отладку приложений, написанных с использованием Spring Boot. На момент написания статьи фича доступна только в Ultimate версии IntelliJ IDEA.
Привет, Хабр!
Сегодня разберём один из недооценённых, но крайне полезных инструментов во Vue 3 — <Teleport>
. Это встроенный механизм, который позволяет рендерить часть шаблона вне текущего DOM‑контекста. Он нужен при реализации модалок, тултипов и других компонентов, которые должны «выпрыгивать» из дерева компонентов, но при этом сохранять реактивность, фокус и доступность. Без этих костылей, z-index: 9999
и appendChild
.
Стриминговые данные — важная часть многих современных ИТ-платформ. Они активно используются в разных разделах социальной сети Одноклассники уже более 10 лет. И за это время используемый нами стриминговый фреймворк успел заметно измениться, поэтому настало время обновить его в нашем проекте. Но на пути обновления легаси-систем иногда возникают сложности.
Меня зовут Алина Шестакова. Я разработчик в команде разработки DataPlatform единой облачной платформы One-сloud. В этой статье расскажу о том, как устроен стриминг данных в ОК, а также обо всех патчах и челленджах, возникших в процессе обновления стримингового фреймворка.
В первой части мы разобрались с принципами работы Ingress-nginx контроллера. Теперь пришло время углубиться в то, как в Ingress-nginx устроен механизм обновления бэкендов и как реализована балансировка нагрузки на примере sticky sessions. Готовы узнать больше? Поехали!
Напомню, если вдруг забыли, эта статья написана по мотивам выступления на DevOpsConf’25, а меня зовут Алексей Колосков, я Lead DevOps из Hilbert Team.
Итак, рассмотрим, как реализовано обновление бэкендов в самом контроллере.
Если на собеседовании по System Design не уделить внимание требованиям, это почти гарантированно приведёт к провалу — даже если ваше техническое решение идеально. Игнорирование требований — главная причина провала на собеседовании. Уделите этому 5-10 минут, и ваше решение сразу станет в разы сильнее. Расскажем, как собрать и зафиксировать требования чтобы повысить свои шансы при прохождении собеседования в IT-компанию.
Представьте: каждый день менеджеры вручную переносят данные из 1С в Excel, чтобы рассчитать маршруты водителей и их зарплату. Два часа на каждого водителя, риски ошибок, бесконечные перепроверки. Именно с этим столкнулась компания по оптовой продаже и доставке автозапчастей по Москве.
Расскажу про систему учета в 1С, которая автоматизировала расчеты зарплат водителей и уменьшила ручной документооборот.
В Deckhouse Prom++ мы переписали ядро хранения и обработки горячих данных на C++, при этом вся оркестрация и периферия остались в Prometheus на Go, что позволило сохранить полную совместимость с Prometheus. Для частых вызовов кода C++ мы использовали механизм CGo, однако первые тесты показали, что производительность CPU практически не улучшилась из-за его медлительности. В итоге мы переписали CGo, создав собственный механизм вызова.
В статье разберём, что такое CGo и почему он такой медленный, сделаем простейший собственный механизм CGo-вызова и доведём этот механизм до полноценного решения.
КриптоПро предоставляет мощные, но неудобные для автоматизации утилиты. CryptoProBuilder — это fluent-интерфейс на PHP, который упрощает подписание, шифрование и работу с сертификатами, без необходимости использовать сложный SDK.
Привет, Хабр!
Сегодня мы рассмотрим, как работает Injector
в Angular, зачем нужны декораторы @Optional
, @SkipSelf
, @Host
, и чем отличаются провайдеры на уровне root
, модуля и компонента.
Привет, Хабр!
Сегодня рассмотрим, как работает fillfactor
в PostgreSQL — тот самый параметр, который никто не трогает, пока таблицы не начинают раздуваться как на дрожжах. Разберём, зачем он нужен, что происходит при UPDATE
, когда стоит менять его вручную и как не наломать дров.