{"id":13508211,"url":"https://github.com/Accenture/reactive-interaction-gateway","last_synced_at":"2025-03-30T10:30:47.383Z","repository":{"id":37887026,"uuid":"107638632","full_name":"Accenture/reactive-interaction-gateway","owner":"Accenture","description":"Create low-latency, interactive user experiences for stateless microservices.","archived":false,"fork":false,"pushed_at":"2023-11-06T00:57:24.000Z","size":19359,"stargazers_count":593,"open_issues_count":55,"forks_count":68,"subscribers_count":37,"default_branch":"master","last_synced_at":"2025-03-25T12:11:07.637Z","etag":null,"topics":["api-gateway","cloudevents-schema","event-driven-architecture","event-driven-microservices","event-subscriptions","frontend","kafka","kinesis","live-data","microservices","reactive","server-sent-events","unidirectional-data-flow"],"latest_commit_sha":null,"homepage":"https://accenture.github.io/reactive-interaction-gateway","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Accenture.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-10-20T06:09:41.000Z","updated_at":"2025-03-23T17:59:45.000Z","dependencies_parsed_at":"2024-01-08T19:22:31.503Z","dependency_job_id":null,"html_url":"https://github.com/Accenture/reactive-interaction-gateway","commit_stats":{"total_commits":1168,"total_committers":28,"mean_commits":"41.714285714285715","dds":0.702054794520548,"last_synced_commit":"b65435c63db0572e7a0ed5acba08198c0bed7439"},"previous_names":[],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accenture%2Freactive-interaction-gateway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accenture%2Freactive-interaction-gateway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accenture%2Freactive-interaction-gateway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Accenture%2Freactive-interaction-gateway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Accenture","download_url":"https://codeload.github.com/Accenture/reactive-interaction-gateway/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246307579,"owners_count":20756473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway","cloudevents-schema","event-driven-architecture","event-driven-microservices","event-subscriptions","frontend","kafka","kinesis","live-data","microservices","reactive","server-sent-events","unidirectional-data-flow"],"created_at":"2024-08-01T02:00:49.804Z","updated_at":"2025-03-30T10:30:45.152Z","avatar_url":"https://github.com/Accenture.png","language":"Elixir","funding_links":[],"categories":["Frameworks","Elixir"],"sub_categories":[],"readme":"![Logo](./logo/Reactive-Interaction-Gateway-logo-cropped.png)\n\n# RIG - Reactive Interaction Gateway\n\nMakes frontend\u003c-\u003ebackend communication reactive and event-driven.\n\n[![Build Status](https://travis-ci.org/Accenture/reactive-interaction-gateway.svg?branch=master)](https://travis-ci.org/Accenture/reactive-interaction-gateway)\n[![DockerHub](https://img.shields.io/docker/pulls/accenture/reactive-interaction-gateway)](https://hub.docker.com/r/accenture/reactive-interaction-gateway)\n\n## About\n\nThe Reactive Interaction Gateway (RIG) is the glue between your client (frontend) and your backend. It makes communication between them easier by (click the links to learn more)\n\n- picking up backend events and forwarding them to clients based on subscriptions: this makes your frontend apps **reactive and eliminates the need for polling**. You can do this\n  - [asynchronously](https://accenture.github.io/reactive-interaction-gateway/docs/features.html#picking-up-backend-events-and-forwarding-them-to-clients-based-on-subscriptions#asynchronously) - using Kafka, Nats or Kinesis.\n  - [synchronously](https://accenture.github.io/reactive-interaction-gateway/docs/features.html#picking-up-backend-events-and-forwarding-them-to-clients-based-on-subscriptions#synchronously) - if you don't want to manage a (potentially complex) message broker system like Kafka.\n- forwarding client requests to backend services either synchronously, asynchronously or a mix of both:\n  - [synchronously](https://accenture.github.io/reactive-interaction-gateway/docs/features.html#synchronously) - if requests are being sent synchronously, RIG acts as a reverse proxy: RIG forwards the request to an HTTP endpoint of a backend service, waits for the response and sends it to the client.\n  - [asynchronously - fire\u0026forget](https://accenture.github.io/reactive-interaction-gateway/docs/features.html#asynchronously---fireforget) - RIG transforms a HTTP request to a message for asynchronous processing and forwards it to the backend asynchronously using either Kafka, NATS or Amazon Kinesis.\n  - [synchronously with asynchronous response](https://accenture.github.io/reactive-interaction-gateway/docs/features.html#synchronously---asnychronous-response) - a pseudo-synchronous request: RIG forwards the client request to the backend synchronously via HTTP and waits for the backend response by listening to Kafka/NATS and forwarding it to the still open HTTP connection to the frontend.\n  - [asynchronously with asynchronous response](https://accenture.github.io/reactive-interaction-gateway/docs/features.html#asynchronously---asnychronous-response) - a pseudo-synchronous request: RIG forwards the client request to the backend asynchronously via Kafka or NATS and waits for the backend response by listening to Kafka/NATS and forwarding it to the still open HTTP connection to the frontend.\n\nBuilt on open standards, RIG is very easy to integrate – and easy to replace – which means low-cost, low-risk adoption. Unlike other solutions, RIG does not leak into your application – no libraries or SDKs required. Along with handling client requests and publishing events from backend to the frontend, RIG provides [many out-of-the-box features](https://accenture.github.io/reactive-interaction-gateway/docs/features.html#out-of-the-box-features).\n\nThis is just a basic summary of what RIG can do. There is a comprehensive documentation available on our [website](https://accenture.github.io/reactive-interaction-gateway/docs/intro.html). If you have any unanswered question, check out the [FAQ](https://accenture.github.io/reactive-interaction-gateway/docs/faq.html) section to get them answered.\n\n## Getting Started\n\n- Take a look at the [getting-started tutorial](https://accenture.github.io/reactive-interaction-gateway/docs/tutorial.html) for a simple walkthrough using docker\n- For deploying RIG on Kubernetes, check out the [Kubernetes deployment instructions](https://github.com/Accenture/reactive-interaction-gateway/tree/284-document-sync-async-http-to-kafka/deployment)\n\n## Get Involved\n\n- [Ask anything by opening GitHub issues](https://github.com/Accenture/reactive-interaction-gateway/issues/new/choose)\n- Follow us on [Twitter](https://twitter.com/reactivegateway)\n- Start contributing: refer to our [contributing guide](./CONTRIBUTING.md)\n- Develop RIG: refer to our [developer's guide](https://accenture.github.io/reactive-interaction-gateway/docs/rig-dev-guide.html)\n\n## License\n\nThe Reactive Interaction Gateway [(patent: granted)](https://patents.google.com/patent/US10193992B2/en) is licensed under the Apache License 2.0 - see\n[LICENSE](LICENSE) for details.\n\n## Acknowledgments\n\nThe Reactive Interaction Gateway is sponsored and maintained by [Accenture](https://accenture.github.io/).\n\nKudos to these awesome projects:\n\n- Elixir\n- Erlang/OTP\n- Phoenix Framework\n- Brod\n- Distillery\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAccenture%2Freactive-interaction-gateway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAccenture%2Freactive-interaction-gateway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAccenture%2Freactive-interaction-gateway/lists"}