bloodbank-n8n-event-driven-workflows

Publish and consume Bloodbank events with RabbitMQ routing and Pydantic payloads.

14|1|Updated Oct 22, 2025
One-click install
npx skills add https://github.com/delorenj/skills --skill bloodbank-n8n-event-driven-workflows
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: bloodbank-n8n-event-driven-workflows
Source: https://github.com/delorenj/skills/tree/main/bloodbank-n8n-event-driven-workflows
Command: npx skills add https://github.com/delorenj/skills --skill bloodbank-n8n-event-driven-workflows

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Building event-driven n8n workflows can be complex and inconsistent. This Skill provides standardized patterns and JSON schemas for 33GOD Bloodbank events, reducing development time and ensuring robust, scalable integrations. It helps users adhere to conventions, maximize modularity, and rapidly expand their event-driven systems.

Core Features & Use Cases

  • Standardized Event Architecture: Defines a clear domain.noun.verb naming convention and provides detailed JSON schemas for core events like task.lifecycle.assigned, task.lifecycle.started, task.lifecycle.completed, and task.lifecycle.failed.
  • n8n Workflow Patterns: Offers ready-to-use n8n code snippets for consuming, validating, and publishing events via RabbitMQ, including patterns for event correlation and robust error handling.
  • Use Case: Quickly set up an n8n workflow to listen for task.lifecycle.assigned events, validate the incoming data against a schema, and then publish a task.lifecycle.started event, ensuring all steps adhere to the defined event architecture and best practices.

Quick Start

Example: Validate an incoming task.lifecycle.assigned event in an n8n Code Node

const taskAssignedSchema = { type: "object", required: ["task_id", "working_dir", "agent_type", "correlation_id", "timestamp"], properties: { task_id: { type: "string", format: "uuid" }, working_dir: { type: "string" }, agent_type: { enum: ["claude-code", "gemini-cli", "custom"] }, correlation_id: { type: "string" }, timestamp: { type: "string", format: "date-time" }, }, }; const Ajv = require("ajv"); const addFormats = require("ajv-formats"); const ajv = new Ajv(); addFormats(ajv); const validate = ajv.compile(taskAssignedSchema); let event = $input.first().json; if (event.event_type && event.payload) { event = event.payload; } const isValid = validate(event); if (!isValid) { throw new Error("Event validation failed: " + JSON.stringify(validate.errors)); } return [{ json: event }];

Frequently Asked Questions about bloodbank-n8n-event-driven-workflows

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I set up event-driven workflows with n8n and RabbitMQ?

Event-driven workflows in n8n coordinate tasks through RabbitMQ message routing using standardized event schemas. This Skill provides JSON schemas and n8n code patterns for publishing and consuming events, enabling decoupled communication across microservices with consistent payload validation.

What is the domain.noun.verb event naming convention and why use it?

Domain.noun.verb is a structured naming pattern for events that enforces consistency across event-driven systems. This convention clarifies event scope, reduces naming conflicts, and makes event streams self-documenting for teams coordinating multi-service workflows.

Can I validate event payloads in n8n using JSON schema?

Yes. This Skill includes ready-to-use n8n Code Node snippets that validate incoming events against Pydantic-defined JSON schemas using AJV, catching malformed payloads before they propagate downstream and ensuring data integrity across workflow steps.

How do I correlate events across multiple n8n workflows?

Event correlation uses a shared correlation_id field embedded in event envelopes and payloads. This Skill's patterns show how to pass correlation IDs through task lifecycle events—assigned, started, completed, failed—enabling end-to-end tracing and debugging across decoupled n8n instances.

What are the lifecycle events required for task orchestration?

Task lifecycle events include task.lifecycle.assigned, task.lifecycle.started, task.lifecycle.completed, and task.lifecycle.failed. Publishing these events at each stage enables consistent state tracking, error recovery, and auditability in multi-service workflows coordinated through RabbitMQ.

Does this approach work for cross-system integration at microservice scale?

Yes. Event-driven patterns with RabbitMQ and immutable event envelopes support decoupled cross-system communication for microservices. This Skill enforces naming conventions, schema validation, and lifecycle publishing, reducing inconsistencies and enabling rapid expansion of service-to-service workflows.