This section explains what the responsibilities of every 3scale component are and what is the impact when each of them is not available.
-
3scale API Gateway
-
APIcast enforces traffic policies, either returning an error or proxying the API call to the customer’s API backend
-
APIcast fetches its operating configuration from
system-app
component when the gateway starts -
Each incoming/managed API call produces a sync/auth request from the API Gateway to
backend-listener
-
Reduces latency by introducing the API Gateway in the traffic flow
-
This is the most critical component, responsible for authorizing and rate-limiting requests
-
APIcast will not be able to tell whether a request should be authorized or not and simply denies everything
-
APIs configured using 3scale are down
-
This service distuption can be mitigated by using the APIcast auth caching policy. There are some trade-offs when using this policy (service availability upon possible outages vs. service available but possibly using outdated configuration), so make sure you understand the implications before using it
-
Process the background jobs created by
backend-listener
-
Runs enqueued jobs, mainly related to traffic reporting
-
Reported metrics can’t be made effective, so the rate-limiting functionality loses accuracy because those pending reports are not taken into account
-
Statistics will not be up to date and the alerts and errors shown in the admin portal will not be triggered
-
Because accounting will not work, authorizations will not be correct
-
Jobs will not be processed and will start accumulating in
backend-redis
, which could lead to database out of memory related problems
-
This is a simple task that acts as a cron like scheduler to retry failed jobs
-
When a
backend-worker
job fails, it is pushed to a "failed jobs" queue so that it can be retried later. Jobs can fail, for example, when there’s a Redis timeout -
It is also responsible for deleting the stats of services that have been removed. This is run every 24h
-
It is the database used by
backend-listener
andbackend-worker
-
It is used both for data persistence (metrics…) and to store job queues
-
Developer and Admin Portal UI/API will not be available
-
3scale APIs (Accounts, Analytics) will not be available
-
apicast
will not be able to retrieve the gateway configuration, so newapicast
deployments will not work -
Already running
apicast
Pods will continue serving traffic using the latest retrieved configuration (cached)
-
It is the job manager used by
system-app
to process jobs in the background asynchronously
-
Emails are not sent
-
Communication with
backend-listener
breaks: changes in Admin Portal will not propagate to Backend -
Backend alerts will not be triggered
-
Webhooks will not be triggered
-
Zync will not receive any updates
-
Background jobs will not be processed and will start accumulating in
system-redis
, which could lead to database out of memory related problems
-
It is the database used by
system-app
to enqueue the jobs consumed bysystem-sidekiq
-
system-memcached
is an ephemeral cache of values used to speed-up the performance of thesystem-app
web application
-
Receives events from
system-sidekiq
-
Enqueue those events as new jobs to be processed in the background by
zync-que
-
Those enqueued jobs can be:
-
Creation/Update of OpenShift Routes (Admin/Developer portals of each tenant)
-
Creation/Update of OpenShift Routes (
apicast-staging
orapicast-production
domains of each API) -
Synchronization of information with configured 3rd party IDPs
-
-
Synchronization of OpenShift Routes for
apicast-staging
andapicast-production
will not work -
Synchronization of OpenShift Routes for the Admin Portal and the Developer Portal domains will not work
-
Synchronization with 3rd party IDPs will not work
-
system-sidekiq
will retry the failed requests for some time
-
Process the enqueued jobs created by
zync
-
Those jobs can be:
-
Creation/Update of OpenShift Routes (Admin/Developer portals of each tenant)
-
Creation/Update of OpenShift Routes (
apicast-staging
orapicast-production
domains of each API) -
Synchronization of information with configured 3rd party IDPs
-
-
Synchronization of OpenShift Routes for
apicast-staging
andapicast-production
will not work -
Synchronization of OpenShift Routes for the Admin Portal and the Developer Portal domains will not work
-
Synchronization with 3rd party IDPs will not work
-
Jobs will not be processed and will start accumulating in
zync-database
, which could lead to database out of disk space related problems
-
It is the database used by
zync
-
It contains job queues and also some data synchronized from
system-app