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
# 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)
# 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--- 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 текстових файлів скіла.
Встановленняз каталогу
npx skills add https://github.com/wshobson/agentsВстановлення відбувається там, не тут. Ми — покажчик із думкою, а не дзеркало.
Що всерединіз каталогу
3 файлів — лише назви. Каталог не повідомляє розмірів.
Що знайшли аудиториз каталогу
Скіл — це інструкції, яких ваш агент послухається, і скрипти, які він може запустити: хто це перевірив, важить не менше, ніж скільки людей його поставили.
Встановлення, зчитування за зчитуваннямнаше
Вісь починається з 9.2k, не з нуля — діапазон від 9.2k до 9.3k.
Питають уголоссказано, а не набрано
Та сама навичка в словах, якими люди говорять до асистента, а не набирають у поле. Кожне питання несе ситуацію, з якої воно виникло, а кожна відповідь каже лише те, що підтверджують файли самої навички.
Ви можете використовувати патерни сага для керування цим, що дозволяє визначити компенсаційні дії при часткових збоях, коли недоступний двофазний коміт. Система обробляє відкат даних через кілька сервісів.
Ви повинні надати деталі щодо вашої існуючої інфраструктури подій чи повідомлень, як-от Kafka або RabbitMQ. Це необхідно для коректної роботи навички.
Докази не містять жодної інформації про те, чи вимагає використання цієї навички оплати або платного плану.