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 }];