{"repo":"dhirendravsingh/Zync","free":true,"listed":false,"github":"https://github.com/dhirendravsingh/Zync","clone":"git clone https://github.com/dhirendravsingh/Zync.git","description":"Zap + Sync - An open-source automation platform that connects webhooks, triggers, and actions using an event-driven architecture.","language":"JavaScript","stars":21,"topics":["webhook-api","kafkajs","nextjs","nodejs","postgresql","prisma-orm","queue","typescript"],"license":null,"category":"databases-storage","readme_excerpt":"⚡ Zync – Zap + Sync Zync is an open-source automation platform that connects webhooks, triggers, and actions using an event-driven architecture. Users can create workflows (zaps) where a trigger (like a webhook hit) results in one or more automated actions (like API calls). --- 🚀 Tech Stack - Frontend : Next.js, Tailwind CSS - Backend : Node.js, Express - Database : PostgreSQL - ORM : Prisma - Queue : Kafka (with KafkaJS) - Validation : Zod - Auth : JWT --- 🧠 Core Concepts - Zap : A user-defined workflow containing a trigger and one or more actions. - Trigger : An event (e.g., webhook) that initiates a zap. - Action : A task executed when the trigger fires (e.g., HTTP call). - Transactional Outbox : Ensures trigger events and queue publications are atomic. - Kafka Pipeline : Events are published to Kafka and consumed by a worker for processing. --- 📁 Folder Structure --- 🔄 Event Flow Architecture 1. User creates a zap via frontend → stored in DB via primary-backend . 2. Trigger (e.g., webhook hit) comes to webhook/ server. - Trigger event + outbox record saved atomically. 3. Outbox processor (in processor/ ) picks unprocessed events and pushes them to Kafka. 4. Worker (in worker/ ) listens to Kafka and executes corresponding actions. --- 🔐 Authentication - JWT-based authentication is used for protected routes (signup/signin). - Zod is used for validating request bodies and token payloads. --- 📦 Getting Started --- 🛠️ Future Improvements - Action types (email, DB, integ","default_branch":null,"files":null,"tree":[],"storefront":"/r/dhirendravsingh","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/dhirendravsingh/Zync/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}