# Subscriptions: Getting Started
Subscriptions allow GraphQL clients to observe specific events and receive updates from the server when those events occur.
NOTE Much of the credit should be given to the [Ruby implementation](https://github.com/rmosolgo/graphql-ruby/blob/master/guides/subscriptions/overview.md) as they provided a great overview of how the backend should work. :::
# Setup
Install the Pusher PHP Library (opens new window) for interacting with the Pusher HTTP API.
composer require pusher/pusher-php-server
Add the service provider to your config/app.php
'providers' => [
\Nuwave\Lighthouse\Subscriptions\SubscriptionServiceProvider::class,
],
# Pusher Webhook
Subscriptions do not expire by themselves. Unless a subscription is deleted, it will continue to broadcast events after the client has disconnected.
Using a Presence webhook will mitigate this problem.
When a Pusher channel is abandoned (ie. unsubscribed), it will trigger the webhook,
which will instruct Lighthouse to delete the subscription.
The webhook URL will typically be:
/graphql/subscriptions/webhook
You can add the webhook in the Pusher Dashboard.
Select the type Presence.