Devs Hive
1.39K subscribers
26 photos
117 links
Для звʼязку пишіть @o_kazm

Розповідаю про сучасне ІТ, System Design і інженерний розвиток.
Download Telegram
Elasticsearch більше не нужонний! 😱😱😱

Заява, звісно, доволі гучна, але зараз усе розпишу. Любителі PostgreSQL, робіть кохве - зараз буде цікаво ☕️

У 2026 році Tiger Data оголосила про production-ready реалізацію BM25 у PostgreSQL - pg_textsearch.

BM25 - це алгоритм ранжування результатів повнотекстового пошуку за релевантністю. Простими словами, він визначає, які документи найкраще відповідають пошуковому запиту, і показує їх першими.

В цілому, PostgreSQL має повнотекстовий пошук з коробки, якого достатньо для більшості простих кейсів. Але коли потрібен ranking за релевантністю чи top-K search, стандартного пошуку вже недостатньо.

У таких випадках раніше часто використовували сторонні search engines, наприклад Elasticsearch або Solr. Вони створюють власні пошукові індекси, а дані з PostgreSQL постійно туди реплікуються. Такий підхід створював дуже багато проблем з синхронізацією і eventual consistency.

З появою pg_textsearch у багатьох випадках можна відмовитися від сторонніх пошукових сервісів і реалізувати складніший пошук безпосередньо в PostgreSQL. Звичайно, для дуже складних сценаріїв все ще можуть знадобитися спеціалізовані рішення по типу Elasticsearch, але на практиці вони зустрічаються не так часто.

Також, pg_textsearch можна комбінувати з pgvector для гібридного пошуку.

📎 - https://github.com/timescale/pg_textsearch
👍14🔥5❤4
Ви теж помітили, що за останній рік сервіси стали дуже криво працювати.

Github знову не робе 😩
🤷‍♂8😱8💯7❤3🫡2
Push vs Pull у брокерах повідомлень 💌💌💌

Одна з речей, які дадуть вам краще розуміння роботи брокерів - це моделі доставки повідомлень.

Насправді все доволі просто й логічно, але багато хто не приділяє цьому уваги. Через це потім не до кінця зрозуміло, коли і який брокер варто використовувати.

А від незнання, в вашій голові завжди буде звучати фраза: «беремо Kafka, вона сама лучча» 😁

Push

Брокер сам відправляє повідомлення consumer-у, щойно воно з’явилося. Такий спосіб найбільш простий і очевидний, оскільки дозволяє дуже швидко отримати та обробити повідомлення.

Але є суттєвий мінус - повідомлень може надходити більше, ніж consumer здатен обробити. Виникає backpressure: повідомлення накопичуються швидше, ніж обробляються.

На практиці, в умовному Datadog, ви будете бачити графік де розмір черги лінійно повзе вгору. Зазвичай, всі роблять вигляд, що не бачать його, а потім рандомний розробник отримує по шапці і страждаючи фіксить корінь проблеми.

Pull

Тут система трохи складніша. Consumer сам запитує у брокера наступну порцію повідомлень і таким чином контролює швидкість їх отримання. Це спрощує роботу з backpressure (але тільки частково), оскільки consumer сам вирішує, коли забирати нові повідомлення.

Загалом pull-модель дає consumer-у більше контролю над тим, коли, скільки і як опрацьовувати повідомлення.

Яскравий представник pull-моделі - Kafka.

#microservices #brokers
👍16🔥3
Чи користувався б ти таким функціоналом?
Anonymous Poll
72%
Так
28%
Ні
❤4
Новий розіграш підʼїхав! ☕️

Цього разу, книга по православному JavaScript.

Книга не моя, а Myloslava Martynova за що їй дуууже велике Дякую!

Умови цього разу трошки інші, книгу зможемо відправити тільки по Україні. Для участі в розіграші напишіть js, @нік нейм, наприклад js, @o_kazm.

Розіграємо книгу 22.08 (субота) біля 11:00 по Києву.

Також, лишаю LinkedIn Милослави, вона пише багато про навчання - https://www.linkedin.com/in/myloslava-martynova/
👍25❤10🔥1🤡1
Я декілька разів писав про Eventual Consistency, і нещодавно Мамкін Архітектор розписав цікавий кейс, де ця модель може добряче підпалити зад користувачу 😁

Хороший приклад того, як цілком нормальне архітектурне рішення може вилізти дуже неприємним UX.

Посилання на допис - https://t.me/mamkin_architect/676
❤8
Devs Hive
Новий розіграш підʼїхав! ☕️ Цього разу, книга по православному JavaScript. Книга не моя, а Myloslava Martynova за що їй дуууже велике Дякую! Умови цього разу трошки інші, книгу зможемо відправити тільки по Україні. Для участі в розіграші напишіть js, @нік…
Книгу розіграно!🍾🔥🔥

Всього прийняло участь 95 людей, а переможець в нас @bulmak_nadiia (напиши пліз поштову інформацію сюди @o_kazm, щоб ми відправили книгу)

Хто не виграв, не розстраюйтесь, розіграші ще будуть і походу багато 😁📕📕
🍾17🔥5❤2
Мав трохи вільного часу і завайбкодив можливість створювати контент для користувачів.

Якщо хочете написати статтю або поділитися питаннями з інтервʼю — реєструйтеся на сайті та заходьте в «Мої публікації».

Після створення контенту я перевірю, чи це не якийсь скам 😁, і якщо все ок — опублікую.

Особливо цікаві питання по frontend, бо зараз на сайті переважає backend, а по frontend є лише кілька питань.

📎 - https://devs-hive.tech/uk/my-content
🔥17❤2👍2
Новий інструмент для Nest.js - Observe 🔭🔭🔭

Пару днів тому відбувся реліз Observe — це інструмент для швидкого налаштування Observability без зайвого гемороя.

І, як на мене, це доволі крутий інструмент. Звісно, якщо на проєкті є розробник, який вміє в Observability і може швидко накидати сетап з умовним OpenTelemetry, прикрутивши туди пару дашбордів, то Observe там не потрібен.

Але в реальності такої людини може не бути, бо в команді всі джуни/мідли, які вже побудували потужне Observability, використовуючи самий надійний інструмент — console.log. Або це маленький проєкт, де взагалі не потрібно заморочуватися, і Observe вирішить всі болі продукту.

📎 - https://www.observe.nestjs.com/
❤9😁3🔥2👍1🤡1
Халява! 🔥🔥🔥

Натрапив на допис в LinkedIn про те, що Redis роздає безкоштовні сертифікації. До сьогодні я навіть не знав, що можна бути Redis Certified.

Як на мене, Redis — це один із поважних інструментів інженера, розуміючи який, можна вирішити багато нетривіальних проблем.

Навіщо воно вам?

Враховуючи те, як шатає ІТ ринок, будь-яка "бумажка" від Big Tech компанії може дати плюс у CV і на інтервʼю. А якщо ви раніше не працювали з Redis, то під час підготовки до сертифікації розберетеся з основами і не тільки.

З податками мені нарахували 218 USD, але якщо скористатися купоном з сайту, вони перетворюються на 0. Тому, звісно я не втримався і забронював Associate Developer. Навіть, якщо ви дуже зайняті, можете забукати дату через пару місяців, а якщо і далі не буде часу - перенести 😁

Забукати сертифікацію можна тут - https://redis.io/certifications/
👍19🔥8
Хочу розповісти про цікавий проєкт - pg-boss 😱😱😱

Це job queue, яка працює прямо поверх PostgreSQL. Тобто якщо у вас уже є PostgreSQL і потрібно реалізувати прості background jobs, то не обов’язково окремо тягнути ще й брокер.

Виглядає цікаво, але кому це треба?

Як на мене, набагато простіше й надійніше взяти Serverless брокер на кшталт SQS чи GCP Pub/Sub, ніж докручувати цю приблуду до бази даних. Вони не потребують окремих інстансів, як наприклад RabbitMQ, і не додають зайвої складності у вашу систему.

Хто хоче погратись, ось посилання на проєкт - https://github.com/timgit/pg-boss
👍5
Знак згори, що пора закінчувати роботу 😁

Знову стало погано для Github Actions. Походу щотижневі збої стають "нормальними"

Можна зробити висновок, що саме безпечне місце для зберігання коду - під подушкою
😁18👍1😱1