#76 — Notifications API and persistence

Repo: Twill-AI/facade State: closed | Status: done Assignee: Unassigned

Created: 2024-08-16 · Updated: 2025-03-24

Description

Blocked by BusinessData nightly Rutter updates.

For on-boarding flow need notify user about “initial load of BusinessData” progress and finish. It would be implemented through WebSocket “NotificationClickableText” (TBD). But to get this information from BusinessData service need to have either: 1. Facade’s inner API to be called by BusinessData during “initial load”. 2. “Polling” trigger on Facade to call BusinessData GET /job/{job_id} API for job state.

While 2nd option looks simple to implement it is not scalable as 1st option for any kind of information about BusinessData changes, like Rutter webhooks so we need to implement exactly 1st option. Also 2nd option would lead to separate API (because webhooks even if would be implemented via jobs then Facade won’t know ID’s of them) and cache for this API with “data to provide on next poll request”.

(will be) Implemented as “BD calls Facade’s POST /master/bdstate/tenant/{tenant_id}/bdintegrations/{bdintegration_id}/sync, see https://github.com/Twill-AI/business-data/issues/31

Notifications are triggered in WebSocket connections, see “NotificationClickableText” in https://twillpayments.atlassian.net/wiki/spaces/TD/pages/7929859/Facade+API#Supported-WebSocket-%E2%80%9Ctype%E2%80%9D-s

For persistence see https://twillpayments.atlassian.net/wiki/spaces/TD/pages/64618498/Entity+Relationship+Diagrams. Note t

Notes

Add implementation notes, blockers, and context here

Add wikilinks to related people, meetings, or other tickets