event-gateway

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 29, 2021 License: Apache-2.0 Imports: 17 Imported by: 0

README ยถ


Share your use case with us

AsyncAPI logo
AsyncAPI Event Gateway

The Event Gateway solution by excellence

โš  Still under development, it didn't reach v1.0.0 and therefore is not suitable for production use yet.

All Contributors

Overview

AsyncAPI Event Gateway (name is subject to change) is the Event Gateway solution by excellence.

Based on traditional API Gateways, it intercepts all incoming messages moving them into a pipeline of middlewares and handlers such as:

  • Message validation
  • Message manipulation
  • Message aggregation
  • Message filtering
  • Authentication
  • Throttling
  • Routing
  • Monitoring (including tracing)

It supports all the protocols AsyncAPI supports through bindings.

This Event Gateway is also compatible with the HTTP protocol, natively or through an external provider like Krakend.io.

AsyncAPI Event Gateway big picture

Goals

1. Performance-first while ensuring message delivery

The Event Gateway it's a stateless solution that ensures messages are delivered as fast as possible using a minimal resource footprint. Delivering messages as a top priority means no data loss should happen.

2. Transparent usage.

No change in the user's code is needed. The service acts as a proxy between the client and the final broker(s). Messages infer the protocol based on the shape of the input network packet.

3. Fully configurable.

The service is entirely configurable, and the user can specify the settings for all protocols as well. For example, consumers' and producers' settings.

4. API-first

The service provides an API for uploading AsyncAPI specs, allowing the user to update their message validation, among others, very quickly. It could even be an automated task whenever you update your specs.

5. Extensible

The Event Gateway can extend its functionality via middlewares written by the community. A catalog of middlewares made by the community is also available.

Roadmap

The idea is to keep iterating and support all the protocols AsyncAPI supports through bindings.
However, we reduced the scope for the first versions, so we can give support to the most used protocols.

For the first version, only Kafka protocol will be supported.

Getting Started

Install from Docker

TBD

Install from pre-compiled binaries

TBD

Install from source

This project is built with Go, and it uses Go Modules for managing dependencies.
The Minimum required version of Go is set in go.mod file.

  1. Clone this repository.
  2. Run make build. The binary will be placed at bin/out/event-gateway.
Configuration

Please refer to /docs/config.

Contributing

Read CONTRIBUTING guide.

Contributors โœจ

Thanks goes to these wonderful people (emoji key):


Sergio Moya

๐Ÿ’ฌ ๐Ÿ› ๐Ÿ’ป ๐Ÿ“– ๐Ÿค” ๐Ÿš‡ ๐Ÿšง ๐Ÿ“† ๐Ÿ”ฌ ๐Ÿ‘€ โš ๏ธ

Fran Mรฉndez

๐Ÿค” ๐Ÿ‘€

Maciej Urbaล„czyk

๐Ÿ‘€

Lukasz Gornicki

๐Ÿ‘€

Paul B.

๐Ÿ‘€

Jonas Lagoni

๐Ÿ‘€

This project follows the all-contributors specification. Contributions of any kind welcome!

Documentation ยถ

The Go Gopher

There is no documentation for this package.

Directories ยถ

Path Synopsis
v2

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL