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

Розповідаю про сучасне ІТ, System Design і інженерний розвиток.
Download Telegram
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
Реліз Node.js 26.8.0 (Current)🔥🔥🔥

З важливого:

- Нативна підтримка для роботи з ZIP файлами. Поки в early development, але це дуже важливий крок для Node.js

- TracingChannel перейшов в Stable. Походу Observability стане трошки кращим

- Покращення в SQLite

📎 - https://nodejs.org/en/blog/release/v26.8.0
🔥17❤1
Нове відео на каналі ☕️☕️☕️

Розповів про один із найпопулярніших патернів у мікросервісах — Idempotency Key.

Він не тільки часто використовується на практиці, а й є одним із типових питань на технічних інтервʼю та кейсів, які варто вміти розбирати на System Design інтервʼю.

📎 - https://www.youtube.com/watch?v=fDnPW03Ux3Q
❤6👍6🔥2