Лысенко Андрей

+1
с 2021

Технический блог

3 подписчика
3 подписки
Личный, не технический блог

Здесь мои собственные, скромные заметки.

Ведение документации

Реализовать решение могут многие, но владеет решением только тот, кто владеет знаниями. Владеть знаниями может только тот, кто умеет сохранять знания, поддерживать их актуальность и полноту, делать их читабельными и непротиворечивыми, связанными, структурированными и переиспользуемыми. Последний критерий, пожалуй, является самым веским показате…

Чтение из Kafka без инцидентов

Знакомясь с продуктом Apache Kafka, вы можете наткнуться такое утверждение – в Kafka соблюдается принцип «тупой брокер – умный потребитель» (для RabbitMQ, стало быть, наоборот). Но в этой статье речь пойдет не о брокере, а о потребителе. Дело в том, что потребитель умный только до пояса, не выше. Чтобы реализовать семантику Exactly-Once (строго…

Отправка сообщений в брокер из бизнес-операций

Довольно часто, при реализации API или бизнес-операции требуется отчитаться о запуске или выполненной работе, например – отправить сообщение в брокер с последующим приземлением в хранилище логов. И вот тут, в силу отсутствия компетентности, сроков или нацеленности на MVP-дизайн, очень часто программисты реализуют дешевый антипаттерн – отправлен…

Как ускорить сайт, сервис, микросервис?

Хотите ускорить загрузку страницы сайта на несколько порядков или поднять скорость ответа сервиса – не вопрос, добавьте к вашей модели данных несколько видов комплексных объектов, денормализованных по восходящему принципу. Идея в некоторой степени перекликается с

PostgreSQL – короткий динамический индекс

В этой статье маленькая памятка как сделать короткий (частичный) динамический (покрывающий плавающее/скользящее окно данных) индекс для большой таблицы. Использование короткого индекса может ускорить запросы. Индекс создается параллельно основному. Коротким он называется потому, что в него попадает ограниченный набор данных (в примере ниже это…

PostgreSQL – быстрая вставка

Если нужно сделать быструю вставку, чтобы не держать транзакцию, то можно использовать промежуточную табличку или PgQ. Далее job (pgpro_scheduler) или сторонний worker может спокойно перекладывать данные (или оправлять куда-то, например в брокер сообщений) уже в другой транзакции.

Приземление потоков сырых данных из Kafka в ClickHouse

Это статья - памятка, в ней описывается паттерн приземления потока сырых данных (логов Nginx) из Kafka в ClickHouse. Так как логи бывают разного формата, то уместно ожидать, что местами решение будет носить частный характер.

Ретроспективная функциональность в реляционной среде

В документе изложены рекомендации по проектированию UI и ретроспективной модели данных, которая будет достаточна и полноценна для построения ретроспективных отчетов. Ретроспективная модель поддерживает версионность записей, что позволяет обратиться к любому историческому моменту и воспроизвести актуальное состояние данных на этот период.

Бессмертный код. Манифест ALPHA

В этой статье предлагается способ, как описать душу программного кода, его альфу и омегу, и сделать его бессмертным. Бессмертным он станет потому, что код, а также мысли и мотивы создателя, смогут понять и принять другие – идущие следом. Рекомендуется для сложных решений и больших блоков.

Сохранение консистентности данных при взаимодействии систем

Заявленная тема не новая, но часто актуальная, поэтому прошу рассматривать статью исключительно как памятку для тех, кто работает с совсем бесплатными СУБД. В этой статье описывается схема, как организовать простое решение, чтобы процесс передачи данных между системами не приводил к рассогласованности этих же данных в системе-потребителе или их…

1
REST API – памятка

Советы в стиле RESTlike, улучшающие эффективность API.