├── website ├── .gitignore ├── src │ ├── assets │ │ ├── PaulAsjes.png │ │ ├── VladPick.png │ │ ├── webhooks.png │ │ ├── AlexBouchard.png │ │ ├── AlexPlugaru.png │ │ ├── DavidBoyne.png │ │ ├── FranMendez.png │ │ ├── LaurenLong.png │ │ ├── SagarBatchu.png │ │ ├── PhilLeggetter.png │ │ ├── MauriceKherlakian.png │ │ ├── PatrickMalatack.png │ │ └── event-destinations.png │ ├── components │ │ ├── Avatar.astro │ │ ├── Title.astro │ │ ├── Contribute.astro │ │ ├── Head.astro │ │ ├── Quote.astro │ │ ├── Guidelines.astro │ │ ├── OnThisPage.astro │ │ ├── Supporters.astro │ │ ├── Manifesto.astro │ │ ├── Nav.astro │ │ └── Implementations.astro │ ├── pages │ │ └── index.astro │ └── global.scss ├── tsconfig.json ├── public │ └── images │ │ ├── event-destinations-og.png │ │ ├── hr-bg.svg │ │ ├── hr-bg-light.svg │ │ ├── favicon.svg │ │ └── hover-bg.svg ├── astro.config.mjs ├── package.json └── README.md ├── CONTRIBUTING.md ├── README.md ├── LICENSE └── specification.md /website/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | .astro 4 | .env 5 | -------------------------------------------------------------------------------- /website/src/assets/PaulAsjes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/PaulAsjes.png -------------------------------------------------------------------------------- /website/src/assets/VladPick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/VladPick.png -------------------------------------------------------------------------------- /website/src/assets/webhooks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/webhooks.png -------------------------------------------------------------------------------- /website/src/assets/AlexBouchard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/AlexBouchard.png -------------------------------------------------------------------------------- /website/src/assets/AlexPlugaru.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/AlexPlugaru.png -------------------------------------------------------------------------------- /website/src/assets/DavidBoyne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/DavidBoyne.png -------------------------------------------------------------------------------- /website/src/assets/FranMendez.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/FranMendez.png -------------------------------------------------------------------------------- /website/src/assets/LaurenLong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/LaurenLong.png -------------------------------------------------------------------------------- /website/src/assets/SagarBatchu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/SagarBatchu.png -------------------------------------------------------------------------------- /website/src/assets/PhilLeggetter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/PhilLeggetter.png -------------------------------------------------------------------------------- /website/src/assets/MauriceKherlakian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/MauriceKherlakian.png -------------------------------------------------------------------------------- /website/src/assets/PatrickMalatack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/PatrickMalatack.png -------------------------------------------------------------------------------- /website/src/assets/event-destinations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/src/assets/event-destinations.png -------------------------------------------------------------------------------- /website/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "astro/tsconfigs/strict", 3 | "include": [".astro/types.d.ts", "**/*"], 4 | "exclude": ["dist"] 5 | } 6 | -------------------------------------------------------------------------------- /website/public/images/event-destinations-og.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hookdeck/event-destinations/HEAD/website/public/images/event-destinations-og.png -------------------------------------------------------------------------------- /website/astro.config.mjs: -------------------------------------------------------------------------------- 1 | // @ts-check 2 | import { defineConfig } from 'astro/config'; 3 | 4 | // https://astro.build/config 5 | export default defineConfig({}); 6 | -------------------------------------------------------------------------------- /website/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "website", 3 | "type": "module", 4 | "version": "0.0.1", 5 | "scripts": { 6 | "dev": "astro dev", 7 | "build": "astro build", 8 | "preview": "astro preview", 9 | "astro": "astro" 10 | }, 11 | "dependencies": { 12 | "astro": "^5.1.5", 13 | "sass": "^1.83.1" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /website/public/images/hr-bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /website/public/images/hr-bg-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /website/public/images/favicon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /website/public/images/hover-bg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /website/README.md: -------------------------------------------------------------------------------- 1 | # Event Destinations Initiative Website 2 | 3 | The [Event Destinations Initiative website](https://eventdestinations.org), built using Astro. 4 | 5 | ## Development 6 | 7 | - `dev`: Starts the development server. 8 | - `build`: Builds the website for production. 9 | - `preview`: Previews the production build locally. 10 | - `astro`: Runs Astro commands. 11 | 12 | ```json 13 | { 14 | "scripts": { 15 | "dev": "astro dev", 16 | "build": "astro build", 17 | "preview": "astro preview", 18 | "astro": "astro" 19 | } 20 | } 21 | ``` 22 | 23 | 1. Install dependencies: 24 | ```sh 25 | npm install 26 | ``` 27 | 2. Start the development server: 28 | ```sh 29 | npm run dev 30 | ``` 31 | 32 | For more information, refer to the [Astro documentation](https://docs.astro.build). -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Event Destinations Initiative Contribution Guide 2 | 3 | ## Event Destinations Specification 4 | 5 | You can contribute to the specification in the following ways: 6 | 7 | - **Simple and small changes**: raise a pull request. For example, language fixes or clarifications. 8 | - **Complex or large changes**: begin by creating a [new discussion](https://github.com/hookdeck/event-destinations/discussions/new?category=ideas), sharing your proposed change and why you believe the change should be considered. 9 | 10 | ## Event Destinations Initiative Website 11 | 12 | See the [website README](website/README.md) for details on how to run the website locally. 13 | 14 | You can contribute to the specification in the following ways: 15 | 16 | - **Simple and small changes**: raise a pull request. For example, language or UI fixes. 17 | - **Add yourself as a supporter**: raise a pull request. Ensure your GitHub profile verifies your identify. -------------------------------------------------------------------------------- /website/src/components/Avatar.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import type { ImageMetadata } from "astro"; 3 | 4 | const { image } = Astro.props as { 5 | image: ImageMetadata; 6 | name: string; 7 | description: string; 8 | }; 9 | --- 10 | 11 |
12 | 13 | 18 |
19 | 20 | 48 | -------------------------------------------------------------------------------- /website/src/components/Title.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import { Image } from "astro:assets"; 3 | import EventDestinations from "../assets/event-destinations.png"; 4 | --- 5 | 6 |

The Event Destinations Initiative

7 |

8 | A model for event interoperability between event producers and their consumers 9 | to favor better developer experience, robust integration, and infrastructural 10 | efficiency. 11 |

12 |
13 | Event Destinations 14 |
15 |

What are Event Destinations?

16 |

17 | Event Destinations are endpoints where event producers, such as API Platforms 18 | and SaaS, deliver events. Examples of destination types include AWS SQS, GCP 19 | Pub/Sub, Hookdeck Event Gateway, RabbitMQ, Amazon EventBridge, Kafka, 20 | Webhooks, and more. 21 |

22 | 23 | 33 | -------------------------------------------------------------------------------- /website/src/components/Contribute.astro: -------------------------------------------------------------------------------- 1 |

Help shape Event Destinations

2 | 3 |

4 | Contribute the the Event Destinations Initiative by providing feedback on the 5 | guidelines within the specification, submitting other examples of 6 | implementations, or sharing your support for the initiative. 7 |

8 | 9 |
10 | Code of Conduct ↗ 15 | Specification ↗ 20 | Join the Discussion ↗ 25 |
26 | 27 | 51 | -------------------------------------------------------------------------------- /website/src/components/Head.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import PostHogScript from "./PostHogScript.astro"; 3 | 4 | const { title, description, tags } = Astro.props as { 5 | title: string; 6 | description: string; 7 | tags: string[]; 8 | }; 9 | 10 | const baseUrl = 11 | import.meta.env.MODE === "development" 12 | ? Astro.url.origin 13 | : "https://eventdestinations.org"; 14 | 15 | const PUBLIC_CUSTOM_HEAD_CONTENT = 16 | import.meta.env.PUBLIC_CUSTOM_HEAD_CONTENT || ""; 17 | --- 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 29 | 30 | {title} 31 | 32 | 33 | 34 | 35 | 36 | 37 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /website/src/components/Quote.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import type { ImageMetadata } from "astro"; 3 | import Avatar from "./Avatar.astro"; 4 | // import { Image } from "astro:assets"; 5 | 6 | const { image, name, description } = Astro.props as { 7 | image: ImageMetadata; 8 | name: string; 9 | description: string; 10 | }; 11 | --- 12 | 13 |
14 |
15 | 16 | {name}
{description}
19 |
20 | 21 |
22 | 23 | 58 | -------------------------------------------------------------------------------- /website/src/components/Guidelines.astro: -------------------------------------------------------------------------------- 1 |

How to implement Event Destinations

2 | 3 |

4 | Event Destinations is not a standard. It is a set of guidelines for event 5 | producers to follow. 6 |

7 | 8 |

Required:

9 | 10 | 32 | 33 |

Recommended:

34 | 35 | 63 | 64 |
65 | Read the Event Destinations specification -> 69 |
70 | 71 | 76 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Event Destinations Initiative 2 | 3 | An initiative to support a new model for event interoperability between event producers and their consumers to favor better developer experience, robust integration, and infrastructural efficiency. 4 | 5 | ![Event Destinations](website/public/images/event-destinations-og.png) 6 | 7 | ## What are Event Destinations 8 | 9 | Event Destinations expand the capabilities of event producers and benefit event consumers by providing more efficient, reliable, and flexible event delivery options. Event Destinations champion a range of event destinations types beyond just traditional webhooks, allowing developers to use the tools they are most familiar with. 10 | 11 | Event Destinations are endpoints or systems to which event producers can send events and give the developer the choice to use the tools they are familiar with directly. For example: 12 | 13 | - Google Cloud Pub/Sub 14 | - AWS SQS 15 | - Hookdeck Event Gateway 16 | - Amazon EventBridge 17 | - Kafka 18 | - RabbitMQ 19 | - And, of course, traditional HTTP webhooks 20 | 21 | Event Destinations benefit event producers and event consumers. 22 | 23 | For event producers: 24 | 25 | - **Efficiency gains**: Reduced failure rates and retried deliveries compared to public HTTP endpoints. Unlock improved performance for high-throughput scenarios. 26 | - **Protocol flexibility**: Leverage more efficient protocols and encodings. 27 | - **Cost & resource efficient**: Smart retry logic, improved deliverability and scalable infrastructure minimize resource consumption, reducing operational costs while ensuring seamless event delivery at any scale. 28 | 29 | For event consumers: 30 | 31 | - **Streamlined infrastructure and operations**: Eliminate the need for API gateways, load balancers, HTTP consumers, and other infrastructure components, reducing maintenance overhead. 32 | - **Reduced developer burden**: Receive events directly to existing or preferred infrastructure and make use of existing and familiar ecosystem tooling. 33 | - **Predictable behavior**: Standardize event expectations—the message bus handles timeouts, retries, and security. 34 | 35 | ## Event Destinations Specification 36 | 37 | The latest draft version of the specification is in [specification.md](specification.md). 38 | 39 | ## Get Involved 40 | 41 | Read [CONTRIBUTING.md](CONTRIBUTING.md) to learn how to contribute to this repository. 42 | 43 | We use GitHub Discussions for: 44 | 45 | - [General discussions](https://github.com/hookdeck/event-destinations/discussions/new?category=ideas) 46 | - [New ideas](https://github.com/hookdeck/event-destinations/discussions/new?category=ideas) 47 | - [Q&A](https://github.com/hookdeck/event-destinations/discussions/new?category=q-a) 48 | 49 | ## Related Initiatives 50 | 51 | - [Async API](https://www.asyncapi.com) 52 | - [CloudEvents](https://cloudevents.io/) 53 | - [Webhook standardization projects](https://webhooks.fyi/learn-more/standards) 54 | 55 | ## Learn More 56 | 57 | Visit the [Event Destinations Initiative website](https://eventdestinations.org) to learn more. -------------------------------------------------------------------------------- /website/src/pages/index.astro: -------------------------------------------------------------------------------- 1 | --- 2 | import "../global.scss"; 3 | import Title from "../components/Title.astro"; 4 | import Nav from "../components/Nav.astro"; 5 | import Head from "../components/Head.astro"; 6 | import Implementations from "../components/Implementations.astro"; 7 | import Manifesto from "../components/Manifesto.astro"; 8 | import Supporters from "../components/Supporters.astro"; 9 | import Guidelines from "../components/Guidelines.astro"; 10 | import Contribute from "../components/Contribute.astro"; 11 | 12 | const title = "Event Destinations Initiative"; 13 | const description = 14 | "A model for event interoperability between event producers and their consumers to favor better developer experience, robust integration, and infrastructural efficiency"; 15 | const tags = [ 16 | "event destinations", 17 | "send webhooks", 18 | "event delivery", 19 | "event destinations", 20 | "event platform", 21 | ]; 22 | --- 23 | 24 | 25 | 26 | 27 | 28 | 29 |