https://github.com/accenture/reactive-interaction-gateway
Create low-latency, interactive user experiences for stateless microservices.
Keywords
Keywords from Contributors
Repository
Create low-latency, interactive user experiences for stateless microservices.
Basic Info
- Host: GitHub
- Owner: Accenture
- License: apache-2.0
- Language: Elixir
- Default Branch: master
- Homepage: https://accenture.github.io/reactive-interaction-gateway
- Size: 18.5 MB
Statistics
- Stars: 605
- Watchers: 38
- Forks: 70
- Open Issues: 55
- Releases: 25
Topics
Metadata Files
README.md

RIG - Reactive Interaction Gateway
Makes frontend<->backend communication reactive and event-driven.
About
The 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)
- 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
- asynchronously - using Kafka, Nats or Kinesis.
- synchronously - if you don't want to manage a (potentially complex) message broker system like Kafka.
- forwarding client requests to backend services either synchronously, asynchronously or a mix of both:
- 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.
- asynchronously - fire&forget - 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.
- synchronously with asynchronous 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.
- asynchronously with asynchronous 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.
Built 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.
This is just a basic summary of what RIG can do. There is a comprehensive documentation available on our website. If you have any unanswered question, check out the FAQ section to get them answered.
Getting Started
- Take a look at the getting-started tutorial for a simple walkthrough using docker
- For deploying RIG on Kubernetes, check out the Kubernetes deployment instructions
Get Involved
- Ask anything by opening GitHub issues
- Follow us on Twitter
- Start contributing: refer to our contributing guide
- Develop RIG: refer to our developer's guide
License
The Reactive Interaction Gateway (patent: granted) is licensed under the Apache License 2.0 - see LICENSE for details.
Acknowledgments
The Reactive Interaction Gateway is sponsored and maintained by Accenture.
Kudos to these awesome projects:
- Elixir
- Erlang/OTP
- Phoenix Framework
- Brod
- Distillery
Owner
- Name: Accenture
- Login: Accenture
- Kind: organization
- Website: https://accenture.github.io
- Repositories: 185
- Profile: https://github.com/Accenture
Accenture Github site
GitHub Events
Total
- Watch event: 15
- Fork event: 7
Last Year
- Watch event: 15
- Fork event: 7
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Kevin Bader | k****r@a****m | 405 |
| Mario Macai | m****i@a****m | 362 |
| Knappek | a****k@g****m | 130 |
| Jakob Wagner | j****r@g****m | 106 |
| Kevin Bader | k****r@g****m | 33 |
| dependabot[bot] | 4****] | 32 |
| Ariel Simulevski | a****l@s****t | 28 |
| Martin Lofaj | m****j@a****m | 23 |
| Pavel Struhar | p****r@g****m | 10 |
| Roman Schiefer | r****r@g****m | 6 |
| Sascha | s****r@a****m | 5 |
| Max Glassie | C****e@c****m | 5 |
| Wagner | j****r@a****m | 4 |
| Michael Gloger | m****r@a****m | 4 |
| Luncanu, Ionela | i****u@a****m | 2 |
| Steve Oliver | s****e@c****m | 2 |
| mark.rendell | m****l@g****m | 2 |
| matej.krekac | m****c@a****m | 2 |
| Peter Masica | p****a@a****m | 2 |
| john.r.kriter | j****r@a****m | 1 |
| Sahil Kariyania | s****a@g****m | 1 |
| Lancaster, Matthew D | m****t@g****m | 1 |
| Lacik | i****k@a****m | 1 |
| ArthurJordao | a****o@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 9 months ago
All Time
- Total issues: 27
- Total pull requests: 75
- Average time to close issues: almost 2 years
- Average time to close pull requests: 5 months
- Total issue authors: 11
- Total pull request authors: 6
- Average comments per issue: 0.96
- Average comments per pull request: 0.67
- Merged pull requests: 28
- Bot issues: 0
- Bot pull requests: 61
Past Year
- Issues: 1
- Pull requests: 0
- Average time to close issues: about 16 hours
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 0
- Average comments per issue: 1.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- kevinbader (14)
- patrickmedina (3)
- mmacai (2)
- arfl (1)
- Lavaei (1)
- littlesvensson (1)
- allamsudha (1)
- lofim (1)
- Knappek (1)
- actraiser (1)
- jakobwgnr (1)
Pull Request Authors
- dependabot[bot] (61)
- mmacai (9)
- steveoliver (2)
- kevinbader (1)
- patrickmedina (1)
- Azer0s (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- hex 300 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 1
- Total maintainers: 2
hex.pm: rig
RIG, the Reactive Interaction Gateway, provides an easy (and scaleable) way to push messages from backend services to connected frontends (and vice versa).
- Documentation: http://hexdocs.pm/rig/
- License: Apache 2.0
-
Latest release: 1.0.0
published about 8 years ago
Rankings
Maintainers (2)
Dependencies
- gnat ~> 1.0.0
- brod ~> 3.9
- cloudevents ~> 0.4.0
- confex ~> 3.4
- credo >= 1.3.0
- dialyxir >= 1.0.0-rc.6
- distillery ~> 2.1
- erlavro ~> 2.8
- ex2ms ~> 1.6
- ex_aws ~> 2.0
- ex_aws_kinesis ~> 2.0
- ex_doc >= 0.21.0
- ex_rated ~> 1.2
- excoveralls >= 0.12.0
- fake_server ~> 2.1
- gnat ~> 1.0
- httpoison ~> 1.6
- jason ~> 1.2
- jaxon ~> 1.0
- joken ~> 1.5
- logger_json ~> 4.0
- memoize ~> 1.3
- mix_test_watch ~> 1.0
- mox ~> 0.5
- murmur ~> 1.0
- odgn_json_pointer ~> 2.5
- opencensus ~> 0.9
- opencensus_elixir ~> 0.3
- opencensus_jaeger ~> 0.0.1
- opencensus_plug ~> 0.3
- opencensus_zipkin ~> 0.3
- peerage ~> 1.0
- phoenix ~> 1.5
- phoenix_live_dashboard ~> 0.4
- phoenix_pubsub ~> 2.0
- phoenix_swagger ~> 0.8
- plug ~> 1.9
- plug_cowboy ~> 2.1
- porcelain ~> 2.0
- prometheus_ex ~> 3.0
- prometheus_plugs ~> 1.1
- schemex ~> 0.1.1
- server_sent_event ~> 1.0
- socket ~> 0.3
- stream_data ~> 0.4
- stubr ~> 1.5.0
- telemetry_metrics ~> 0.6
- telemetry_metrics_prometheus ~> 0.6
- telemetry_poller ~> 0.5
- timex ~> 3.6
- typed_struct ~> 0.2.0
- uuid ~> 1.1
- vex ~> 0.8.0
- joken ~> 1.4
- base64url 0.0.1
- joken 1.5.0
- jose 1.8.4
- poison 3.1.0
- org.erlang.otp:jinterface 1.8.1 provided
- com.amazonaws:amazon-kinesis-client 1.9.0
- junit:junit 4.13.1 test
- 1472 dependencies
- react-scripts ^4.0.3 development
- bulma ^0.7.5
- jsonwebtoken ^8.5.1
- proptypes ^1.1.0
- react ^16.8.6
- react-dom ^16.8.6
- @hapi/accept 5.0.2
- @hapi/ammo 5.0.1
- @hapi/b64 5.0.0
- @hapi/boom 9.1.4
- @hapi/bounce 2.0.0
- @hapi/bourne 2.1.0
- @hapi/call 8.0.1
- @hapi/catbox 11.1.1
- @hapi/catbox-memory 5.0.1
- @hapi/content 5.0.2
- @hapi/cryptiles 5.1.0
- @hapi/file 2.0.0
- @hapi/hapi 20.2.2
- @hapi/heavy 7.0.1
- @hapi/hoek 9.3.0
- @hapi/iron 6.0.0
- @hapi/mimos 6.0.0
- @hapi/nigel 4.0.2
- @hapi/pez 5.0.3
- @hapi/podium 4.1.3
- @hapi/shot 5.0.5
- @hapi/somever 3.0.1
- @hapi/statehood 7.0.4
- @hapi/subtext 7.0.4
- @hapi/teamwork 5.1.1
- @hapi/topo 5.1.0
- @hapi/validate 1.1.3
- @hapi/vise 4.0.0
- @hapi/wreck 17.2.0
- kafkajs 1.16.0
- mime-db 1.52.0
- @hapi/hapi ^20.1.2
- kafkajs ^1.15.0
- 209 dependencies
- cypress ^5.5.0 development
- 202 dependencies
- artillery ^1.5.6
- eventsource ^2.0.2
- 123 dependencies
- body-parser ^1.19.0
- express ^4.17.1
- morgan ^1.9.1
- multer ^1.4.2
- no-kafka ^3.4.3
- winston ^3.2.1
- docusaurus ^1.14.4 development
- 983 dependencies
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/setup-elixir v1 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/setup-node v2.1.3 composite
- ryankurte/action-apt v0.2.0 composite
- actions/checkout v2 composite
- helm/chart-releaser-action v1.0.0 composite
- helm/chart-testing-action v1.0.0 composite
- helm/kind-action v1.0.0 composite
- actions/checkout v2 composite
- elixir 1.11.3-alpine build
- erlang 23-alpine build
- wurstmeister/kafka 0.10.0.1-2
- wurstmeister/zookeeper 3.4.6
- accenture/reactive-interaction-gateway latest
- channels-external-service latest
- channels-ui latest
- jaegertracing/all-in-one 1.18
- wurstmeister/kafka 0.10.0.1-2
- wurstmeister/zookeeper 3.4.6
- nginx latest build
- wurstmeister/kafka 1.0.0
- wurstmeister/zookeeper 3.4.6
- node 14-alpine build
- jaegertracing/all-in-one 1.18
- localstack/localstack latest
- confluentinc/cp-kafka 5.0.0
- confluentinc/cp-schema-registry 5.0.0
- confluentinc/cp-zookeeper 5.0.0
- accenture/reactive-interaction-gateway latest
- confluentinc/cp-kafka 5.0.0
- confluentinc/cp-kafkacat 5.0.0
- confluentinc/cp-zookeeper 5.0.0
- grafana/grafana 7.3.4
- localstack/localstack 0.12.2
- prom/prometheus v2.23.0
- node 14-alpine build
- rig smoke_test
- wurstmeister/kafka 1.1.0
- wurstmeister/zookeeper 3.4.6