Eventhos is an open source platform that applies event-driven architecture principles to allow the user to orchestrate their system integrations using a simple user interface instead of complicated publisher and subscriber source codes in applications. You only need webhooks and rest APIs to integrate all your systems.
Full details in the wiki
Basically you have to identify the producers (webhooks) and consumers (apis). Then using th UI you can make a contract between the incoming event produced by a webhook (source system) to the rest api in in the target system. So with this you will have a real time integration between the producer and consumer systems without the complexity of kafka or similars.
Here a sample of contract between producers and consumers
create-contract-2024-04-05_17.50.51.mp4
More uses cases and deep explanation here and here
- Register all systems (producers and consumers)
- Create contracts between your systems
- Oauth2 Security
- Manual retry on error
- Event Dashboard to see the received events and all the details (request/response)
- Reply-To option
- Json binding to match between the webhook json and target api json
- Vanilla javascript to binding to match between the webhook json and target api json
- Mail on error with the details
- User Management
More details here
Here a minimalist High Level Diagram
To know more about each dependency check their git repositories.
In this repository you will find the code of the web artifact called eventhos-web. You will need the api to get all the eventhos platform ready to use or develop
To build and start this platform you need knowledge about nodejs, mysql, angular, etc. To get your own version in less than 3 minutes, follow this guide:
If you don't have errors, you will be able to see the home page at the http://localhost:2110
- Angular 13
- Webpack 5
- Nodejs >=14
Following the third commandment of 12factor we use environment variables to handle the configurations
Variable | Description | Default Value |
---|---|---|
EVENTHOS_API_BASE_URL | The eventhos api base url | NULL |
Variables are defined in src/settings.json
More details about configurations here.
Export the required env variables or create a .env
npm install
npm run dev
By default the app runs in the 4200 port.
Export the required env variables or create a .env
npm install
npm run build
npm run start
By default the app runs in the 2110 port.
Also you can use docker following this guide
The main use case could be found here
A complete user guide is in the wiki
The authentication and authorization are managed by the api. Check this to get the login credentials
If you startup the local demo you can run the integration and e2e tests.
We use docker, selenium and a mock api to test almost all the ui forms and rest api endpoints. Check this for more details:
Check this https://github.com/usil/eventhos-api/wiki/Contributions
Luis Huertas |
JRichardsz |
Diego Ramos |