🎯 Definicja
GraphQL Subscriptions to sposób na “nasłuchiwanie” zmian w czasie rzeczywistym. Zamiast pytać serwera co 5 sekund “Czy coś się zmieniło?” (Polling), otwierasz stałe połączenie (WebSocket). Serwer sam daje znać, jak coś się stanie.
🔑 Kluczowe punkty
- Push, nie Pull: Serwer wypycha dane do klienta.
- Wydajność: Mniej zapytań HTTP. Idealne do pasków postępu, czatów, powiadomień.
- Events: W Ataccama ONE możesz subskrybować zdarzenia np.
ENTITY_CREATED,DQ_EVAL_FINISHED.
📚 Szczegółowe wyjaśnienie
Składnia jest podobna do Query, ale słowo kluczowe to subscription.
Przykład prostej subskrypcji zdarzeń zewnętrznych (External Events) w ONE:
subscription {
externalEvents {
id
entityId
entityType
timestamp
}
}Gdy ktoś utworzy nową tabelę w katalogu, Twój skrypt od razu dostanie JSONa z jej ID.
💡 Przykład zastosowania
Budujesz dashboard na telewizorze w biurze. Pokaż “Ostatnie incydenty DQ”. Używasz Subskrypcji. Gdy tylko system wykryje błąd danych, telewizor się aktualizuje. Bez odświeżania strony F5.
📌 Źródła
- GraphQL Docs - Subscriptions.
- Ataccama Developers Guide.
👽 Brudnopis
- Pamiętaj, że Subscriptions wymagają stanowego połączenia (WebSocket). To trudniejsze do skalowania niż zwykłe REST API (stateless).