Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

subscription to changes #209

Open
tttp opened this issue Jun 2, 2023 · 1 comment
Open

subscription to changes #209

tttp opened this issue Jun 2, 2023 · 1 comment

Comments

@tttp
Copy link
Member

tttp commented Jun 2, 2023

Hi,

we are using a mix of rabbitmq (actions), REST API (campaign), phoenix channels+graphql subscription (actionpages)

for the later, it seems there is a different protocol (also based on websockets) that is more common

absinthe_graphql_ws

but might be good to rationalise and stick to one method

how it is used:

  1. rebuild the widgets automatically when the campaigner update (graphql subscription to all widget changes)
  2. campaign change: to save on git (REST API) for all campaigns change
  3. actions: to sync to the CRM (based on organisation config)
    and potentially/related
  • inform the coordinator when a new organisation join a campaign
  • add to our CRM when a new user/org is added
  • inform org admins if a new user is added

it might make sense to push everything through rabbitmq for consistency

  • one queue per org (optional): get actions + widget changes + campaign change + new partners?
  • one "builder" queue (push campaigns and widget change)
  • on queue for us for onboarding (new org+new user)
@tttp
Copy link
Member Author

tttp commented Jun 9, 2023

first step:

  • there is an actionPageUpserted subscription, do the same for campaignUpserted
    second step:
  • graphql_ws
    3rd step:
  • add an authentication (new permission "infra")
    and/or
  • send to rabbitMQ (both campaign+actionpage)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants