saga-orchestration

Робота агентів

wshobson/agentsskills.sh ↗

Встановлень

9 285

без дублів, на момент останньої синхронізації

Відколи рахуємо

+1.2%

40 зчитувань, приблизно раз на 2 год. Це не жива крива.

Наша категорія

Робота агентів

наше

Останнє зчитування

3 вер. 2026 р.

з каталогу

Наш розбір

наше

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

Що дає на виході
  • Визначення саги з впорядкованими кроками, командами дій та командами компенсації
  • Реалізація оркестратора або хореографії
  • Логіка компенсації для кожного учасника сервісу
  • Конфігурація тайм-ауту кроку з дедлайнами на крок
  • Налаштування моніторингу: метрики стан-машини, виявлення застряглої саги, відновлення DLQ
Що потрібно
  • Межі та володіння сервісами (який сервіс відповідає за який крок)
  • Вимоги до транзакцій (які кроки мають бути атомарними, які можуть бути евентуальними)
  • Режими збоїв для кожного кроку (тимчасовий чи постійний, політика повторних спроб)
  • Вимоги SLA на крок
  • Існуюча інфраструктура подій/повідомлень (Kafka, RabbitMQ, SQS тощо)
Платні сервіси

не виявлено

Докази не надають жодної інформації щодо необхідних платних сервісів.

Реєстрація

не виявлено

Докази не надають жодної інформації щодо необхідної реєстрації.

Межі й людська перевірка

Навичка не може визначити конкретні межі сервісів, вимоги до транзакцій, режими збоїв чи потреби в SLA для унікальної системи користувача. Крім того, вона вимагає зовнішньої інфраструктури подій/повідомлень, як-от Kafka або RabbitMQ, для коректної роботи.

Доказиplugins/backend-development/skills/saga-orchestration/references/advanced-patterns.md:1-91plugins/backend-development/skills/saga-orchestration/references/details.md:1-69plugins/backend-development/skills/saga-orchestration/SKILL.md:1-118
plugins/backend-development/skills/saga-orchestration/references/advanced-patterns.md1–91 · уривок обрізано
# Saga Orchestration — Advanced Patterns

Complex implementations extracted from core skill for deeper reference.

---

## Full Saga Orchestrator Base Class

The abstract base handles all state transitions, compensation ordering, and event publishing. Subclass this for every saga type in your system.

```python
from abc import ABC, abstractmethod
from dataclasses import dataclass, field
from enum import Enum
from typing import List, Dict, Any, Optional
from datetime import datetime, timedelta
import uuid


class SagaState(Enum):
    STARTED = "started"
    PENDING = "pending"
    COMPENSATING = "compensating"
    COMPLETED = "completed"
    FAILED = "failed"


@dataclass
class SagaStep:
    name: str
    action: str
    compensation: str
    status: str = "pending"
    result: Optional[Dict] = None
    error: Optional[str] = None
    executed_at: Optional[datetime] = None
    compensated_at: Optional[datetime] = None
    timeout_at: Optional[datetime] = None


@dataclass
class Saga:
    saga_id: str
    saga_type: str
    state: SagaState
    data: Dict[str, Any]
    steps: List[SagaStep]
    current_step: int = 0
    created_at: datetime = field(default_factory=datetime.utcnow)
  
plugins/backend-development/skills/saga-orchestration/references/details.md1–69 · уривок обрізано
# saga-orchestration — detailed sections

## Templates

### Template 1: Order Fulfillment Saga (Orchestration)

Concrete subclass of the base orchestrator. Defines four steps spanning inventory, payment, shipping, and notification. See `references/advanced-patterns.md` for the full abstract `SagaOrchestrator` base class.

```python
from saga_orchestrator import SagaOrchestrator, SagaStep
from typing import Dict, List


class OrderFulfillmentSaga(SagaOrchestrator):
    """Orchestrates order fulfillment across four participant services."""

    @property
    def saga_type(self) -> str:
        return "OrderFulfillment"

    def define_steps(self, data: Dict) -> List[SagaStep]:
        return [
            SagaStep(
                name="reserve_inventory",
                action="InventoryService.ReserveItems",
                compensation="InventoryService.ReleaseReservation"
            ),
            SagaStep(
                name="process_payment",
                action="PaymentService.ProcessPayment",
                compensation="PaymentService.RefundPayment"
            ),
            SagaStep(
                name="create_shipment",
                action="ShippingService.Cr
plugins/backend-development/skills/saga-orchestration/SKILL.md1–118
---
name: saga-orchestration
description: Implement saga patterns for distributed transactions and cross-aggregate workflows. Use this skill when implementing distributed transactions across microservices where 2PC is unavailable, designing compensating actions for failed order workflows that span inventory, payment, and shipping services, building event-driven saga coordinators for travel booking systems that must roll back hotel, flight, and car rental reservations atomically, or debugging stuck saga states in production where compensation steps never complete.
---

# Saga Orchestration

Patterns for managing distributed transactions and long-running business processes without two-phase commit.

## Inputs and Outputs

**What you provide:**
- Service boundaries and ownership (which service owns which step)
- Transaction requirements (which steps must be atomic, which can be eventual)
- Failure modes for each step (transient vs. permanent, retry policy)
- SLA requirements per step (informs timeout configuration)
- Existing event/messaging infrastructure (Kafka, RabbitMQ, SQS, etc.)

**What this skill produces:**
- Saga definition with ordered steps, action commands, and compensatio

Прочитано 3 з 3 текстових файлів скіла.

Станом на вересень 2026 р. · GemmaСкладено з опублікованих файлів скіла. Перед тим як покладатися на дані про доступ і вартість — перевірте у джерелі.

Встановленняз каталогу

npx skills add https://github.com/wshobson/agents

Встановлення відбувається там, не тут. Ми — покажчик із думкою, а не дзеркало.

Що всерединіз каталогу

references/advanced-patterns.md
references/details.md
SKILL.md

3 файлів — лише назви. Каталог не повідомляє розмірів.

Що знайшли аудиториз каталогу

Скіл — це інструкції, яких ваш агент послухається, і скрипти, які він може запустити: хто це перевірив, важить не менше, ніж скільки людей його поставили.

Gen Agent Trust HubNo security issues detected. This skill provides architectural documentation and code templates for implementing Saga patterns in distributed systems.29 трав. 2026 р. · SAFEpass
SocketNo alerts29 трав. 2026 р.pass
SnykRisk: MEDIUM · 1 issue29 трав. 2026 р. · MEDIUMwarn
Runlayer1 file scanned · No issues7 бер. 2026 р. · NONEpass
ZeroLeaksScore: 93/100 · 2 sections analyzed16 квіт. 2026 р. · NONEpass

Встановлення, зчитування за зчитуваннямнаше

9.2k
9.3k
30 серп. 2026 р.40 зчитувань за 5 дн., намальовано по останньому зчитуванню кожного дня.3 вер. 2026 р.

Вісь починається з 9.2k, не з нуля — діапазон від 9.2k до 9.3k.

Питають уголоссказано, а не набрано

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

проектування робочого процесуЯк мені обробляти збої у моїх розподілених транзакціях?

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

налаштування нового сервісуЧи мені хвилюватися про інфраструктуру повідомлень?

Ви повинні надати деталі щодо вашої існуючої інфраструктури подій чи повідомлень, як-от Kafka або RabbitMQ. Це необхідно для коректної роботи навички.

перевірка ціниЦе безкоштовно використовувати?

Докази не містять жодної інформації про те, чи вимагає використання цієї навички оплати або платного плану.

Поруч на тій самій полицінаше