Англійський словник для тимчасових розробників робочих потоків

Вивчіть професійну англійську лексику для Temporal — потоки робіт, дії, сигнали, запити, дочірні потоки робіт, розклади, версії потоків робіт і Temporal Cloud у справжніх інженерних розмовах.

Temporal — це довговічна платформа для написання надійних, довготривалих потоків роботи у коді. Його використовують інженерні команди в таких компаніях, як Netflix, Stripe і Datadog, щоб організувати складні процеси — від багатокрокових бізнес-процесів, що тривають декілька днів, до розподілених транзакцій, які повинні пережити аварії інфраструктури. Temporal має точний і чіткий словник: Робочі потоки, Дії, Сигнали, Запити, Дочірні потоки та версії, які є фундаментальними для правильного використання платформи. Якщо ваша команда використовує Temporal, оволодіння цим словником є необхідним для участі у перегляді проекту, зневаджування виробничих інцидентів і написання коду потоку робіт, який можуть підтримувати ваші колеги. У цьому повідомленні описано основні терміни, пов’ язані з тимчасовими даними.

Ключовий словник

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

  • Приклад: « Написати логіку виконання замовлення як тимчасовий робочий процес — якщо сервер зазнає аварії під час виконання, тимчасовий процес відтворить історію робочого процесу і відновить його з того місця, де він зупинився. » *

Діяльність Функція, яка виконує недетермінований побічну дію — виклик зовнішнього API, запис до бази даних, надсилання електронної пошти або будь- яку іншу дію, яка взаємодіє з зовнішнім світом. Дії викликаються з потоків робіт і автоматично повторюються у разі невдачі. На відміну від потоків робіт, код діяльності не повинен бути детермінованим. Приклад: «Загорнути виклик Stripe charge в дію — дії автоматично повторюються при невдачі і можуть безпечно здійснювати зовнішні виклики API, які не може виконати робочий процес.»

Сигнал Асинхронне повідомлення, надіслане до запущеного потоку робіт, яке може змінити його стан або зняти блокування з очікування. Сигнали надсилаються ззовні (з коду програми або іншого потоку робіт) і отримуються обробником сигналів потоку робіт. Сигнали є тривалими — їх буде надіслано навіть у випадку, якщо робочий потік перебуває у стані сну.

  • Приклад: « Надіслати сигнал cancel-order до потоку виконання, коли користувач натисне кнопку скасувати — обробник сигналів потоку виконання зупинить процес виконання і запустить дію повернення коштів. » *

** Запит ** Синхронний механізм лише для читання для перевірки поточного стану запущеного потоку робіт. Запити не змінюють стан робочого потоку, відповіді на них надаються негайно з стану потоку у пам’ яті. Використовуйте Запити для показу стану виконання, поточного кроку або накопичених даних з запущеного потоку робіт.

  • Приклад: « Додати обробник запиту, який повертає поточний крок і відсоток завершення потоку роботи з перенесення даних — кінцева точка стану буде викликати цей запит кожні 5 секунд, щоб показувати поступ у інтерфейсі користувача. » *

** Дочірній поток роботи ** Потік роботи було розпочато з іншого потоку роботи. Дочірні потоки роботи виконуються незалежно один від одного, і їх можна налаштувати на продовження роботи навіть у разі скасування батьківського потоку роботи. Вони корисні для паралельності (розгорнутих шаблонів), розбиття великих потоків робіт на прості у керуванні одиниці і повторного використання логіки потоків робіт.

  • Приклад: « Для кожного замовлення у масовій партії запустити дочірній робочий потік для обробки окремого замовлення — дочірні потоки роботи виконуються паралельно, а батьківський робочий потік чекає на завершення всіх потоків роботи, перш ніж продовжити роботу ». *

Расписание Вбудований у Temporal механізм для запуску потоків робіт за повторюваним розкладом, визначеним за допомогою виразу cron. Розклади замінюють потребу у зовнішніх завданнях cron або запланованих завданнях — Temporal керує часом, обробляє пропусчені запуски і надає вам історію запланованих виконань.

  • Приклад: « Створити часовий розклад з виразом cron 0 3 * * * для запуску потоку роботи щоночі о 3 годині ранку — ви можете переглядати цей поток роботи і керувати ним з інтерфейсу веб- програми Temporal, не торкаючись жодної інфраструктури. » *

** Версії потоку робіт ** Механізм безпечного зміни коду потоку робіт, який зараз виконується у виробничому режимі. Оскільки тимчасовий робочий потік відтворює історію робочого потоку для відновлення стану, зміна логіки робочого потоку може призвести до помилок, пов’ язаних з недетермінізмом потоків дій. Керування версіями (за допомогою workflow.getVersion() або API для латів) надає вам змогу вносити зміни без порушення існуючих запусків.

  • Приклад: « Скористайтеся workflow.getVersion(), щоб ввести нову логіку повторних спроб оплати — потоки робіт під час виконання будуть виконуватися за старим шляхом, нові потоки робіт — за новим шляхом, і після завершення всіх старих потоків робіт ви зможете вилучити гілку версії. » *

Временная Хмара Пропозиція Temporal SaaS з повним керуванням, яка запускає інфраструктуру сервера Temporal (планування, відновлення, зберігання історії) на інфраструктурі Temporal, а не вашій власній. Команди використовують Temporal Cloud, щоб уникнути роботи сервера Temporal, бази даних Cassandra і кластера Elasticsearch. Приклад: “Ми перейшли з самостійно розміщеного Temporal на Temporal Cloud в минулому кварталі - ми виключили операційне навантаження Cassandra і інженерна команда зосередилася виключно на коді Workflow замість інфраструктури.”

Як використовувати цей словник

Темпоральні обговорення проектування зосереджені на розділенні між логікою потоку роботи (оркестрація, стан, рішення) і логікою діяльності (побічні ефекти, зовнішні виклики). Поширений коментар перегляду: «цей зовнішній виклик API повинен бути в дії, а не безпосередньо в робочому потоці» - тому що код робочого потоку повинен бути детермінованим, а зовнішні виклики не є.

Обговорення сигналів і запитів виникають під час створення потоків робіт, які потребують взаємодії з системами, що працюють з користувачем. Команди обговорюють питання « Які сигнали слід отримувати цьому потоку роботи? » і « Які запити слід показувати для API стану? » Версії є повторюваною темою, коли потрібне оновлення потоку роботи, який виконується вже довгий час — правило « завжди використовувати getVersion під час зміни логіки потоку роботи » є стандартною тимчасовою найкращою практикою.

Приклад розмови

** Вера: ** Мені потрібно оновити логіку повторення спроб платежу у потоці роботи з поверненням коштів. Він працює на замовлення вже три дні. ** Omar: ** Не змінюйте код Workflow безпосередньо — це призведе до помилок недетермінованого типу для запусків у польоті. Використовувати версії потоку робіт. Вера: Так — я використаю getVersion, щоб розгалужити нову логіку. Старі шляхи йдуть старими шляхами. Точно. Також додайте обробник запитів, щоб команда підтримки могла перевіряти кількість повторних спроб без перегляду бази даних.

Practice

  1. Пояснити розбіжність між потоком робіт і діяльністю розробнику, який не має досвіду роботи з тимчасовими файлами. Використовуйте аналогію (наприклад, менеджер проекту проти підрядника), а потім відобразіть її назад до технічних концепцій детермінізму і побічних ефектів.
  2. Створіть тимчасовий поток дій для процесу вилучення облікового запису користувача: поток дій має надіслати прощальну електронну пошту (Дія), зачекати 14- днівовий період очікування, перевірити, чи було повторно активовано користувача (Запит), а потім вилучити обліковий запис (Дія). Визначте, де ви хочете використовувати Сигнали, Запити і Дії.
  3. Поясніть роботу з версіями потоку робіт колегі за допомогою метафори запущеного конвеєра. Почему бы тебе не просто изменить код и передислоцировать? Яка проблема вирішується getVersion?

Національний гідрографічний інститут: Відповідь і відповіді

Сила Temporal полягає не тільки в його технічній архітектурі - надійне управління станом, надійне планування - але також у тому, як команди спілкуються навколо нього. Для не рідних англомовних носіїв, розуміння тонких нюансів професійних робочих потоків і зворотного зв’язку може бути значною перешкодою. Одне — це зрозуміти, що означає коментар перегляду коду; зовсім інше — впевнено відповісти на нього, або навіть розпочати конструктивну дискусію. Поширеною ситуацією є отримання зворотнього зв’ язку щодо визначення потоку робіт, яке не відразу стає зрозумілим. Розглянемо цей сценарій: Сара, новачок у Temporal, надіслала PR, що містить складний робочий процес, що включає декілька дій і сигналів. Під час перегляду коду, старший інженер Мартін залишив коментар, в якому сказав: «Чи можете ви пояснити мету сигналу on_success тут? Це виглядає трохи розмовним, враховуючи очікуваний результат»

Це не тільки про синтаксис або технічну коректність; це про передачу намірів і забезпечення узгодженості зі стандартами команди. Простого “так” або “ні” не вистачить. Сара должна понять, почему Мартин отметил это. Можливо, сигнал був надто складним, що призвело до потенційних проблем з продуктивністю. Або, можливо, простіший підхід міг би досягти того ж результату більш чітко. Ключовим є активне спілкування і демонстрація розуміння найкращих практик Temporal. Фрази на кшталт «Я ціную, що ви на це звернули увагу» або «Дайте мені пояснити мої міркування…» можуть розсіяти потенційні незручні ситуації і продемонструвати бажання навчатися. Також важливо задати прояснюючі питання — «Чи можете ви розібратися, що ви маєте на увазі під «слівним» в цьому контексті?» — а не припускати розуміння. Аналогічно, коли ви пишете описи PR, будьте чіткими щодо наміру ваших змін. Не просто вкажіть « Оновлено робочий процес ». Замість цього скажіть щось на зразок: « Переглянуто робочий процес order_processing для інтеграції з новою системою обліку запасів, використовуючи signal, який було запущено після успішного завершення замовлення для оновлення рівнів запасів »

Крім того, розмови Slack часто включають обговорення часових складностей. Поширений обмін може бути: “Гей команда, ми бачимо деякі піки затримки в shipping_workflow. Чи є у когось ідеї?» Добра відповідь не була б просто «Перевірте журнали». Замість цього вона б визнала проблему і запропонувала співпрацю: «Я досліджую затримку shipping_workflow. Я почав моніторити тривалість активності і час поширення сигналу — можливо, ми можемо пов’ язати це з останніми змінами у визначенні потоку роботи або налаштуваннях розкладу? » Використання точної термінології, наприклад, « тривалість активності », « час поширення сигналу » або « налаштування розкладу », демонструє знайомість з основними концепціями Temporal і дозволяє ефективніше вирішувати проблеми.

# Example: Checking activity status within Temporal using the CLI
temporal activities list --workflow shipping_workflow --query "status = 'running'"

Ця команда, хоча і здається простою, показує звичайну взаємодію потоку робіт — спостереження стану дії у межах тимчасового потоку робіт. Зрозуміти, як сформулювати цей процес - і потенційні результати - є життєво важливим для ефективного співробітництва в рамках тимчасової команди розробки. Пам’ятайте, що чітке спілкування не тільки про уникнення непорозумінь; це про створення співпраці середовища, де кожен може внести свій внесок у свої знання.

Поширені запитання

Про що ця стаття "Англійський словник для тимчасових розробників робочих потоків"?

Вивчіть професійну англійську лексику для Temporal — потоки робіт, дії, сигнали, запити, дочірні потоки робіт, розклади, версії потоків робіт і Temporal Cloud у справжніх інженерних розмовах.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Англійський словник для тимчасових розробників робочих потоків"?

Приблизно 8 min.