Hi All,

APIM Analytics 3.0.0 onwards has a database dependency to the APIM
database(AM_DB). This dependency was introduced because of the following
reasons:

   - Data required for certain widgets are persisted only in the AM_DB. For
   example, the complete list of resources of an API is available only in
   the AM_DB. The Analytics_DB only persists the resources which have been
   invoked.
   - Information required to enforce publisher access control and
   application sharing are not persisted in the Analytics_DB.

The suggested solution to remove this AM_DB dependency is to introduce a
new Analytics REST API( a new webapp) to APIM. This REST API will be solely
responsible for providing the information required for analytics. The
analytics APIs will only have the scope for 'internal/analytics' role,
which is a role used only for analytics.

The advantages of having a dedicated REST API for analytics are as follows:

*Introducing time based filtering:*

Most of the analytics widgets require time based data filtering. The
existing publisher APIs do not provide this functionality.  By implementing
the new REST APIs with time based filtering functionality, we can move the
burden of data filtering to the database level.

*Move data processing burden from the front end to the** backend/**database*

Certain widgets require data from multiple tables (For example, the Top
Subscription per Provider widget needs data from both AM_API table and
AM_SUBSCRIPTIONS table to identify the providers with the highest number of
subscriptions). If we use the generic REST APIs provided in the publisher,
we will have to do further processing at the frontend to arrive at the
final information required. This could cause memory and performance issues
when the data load increases. However, if we introduce analytics specific
REST APIs tailor made to return the information required by these widgets,
we could move the data processing burden to the backend/database level.

*Ease of introducing new REST APIs*

When introducing new widgets which require data from AM_DB, if there is no
existing API to get the required information, we can easily add a new REST
API to the analytics webapp to get the required information.

Appreciate your thoughts on the above.

Regards,
Ruwini
-- 
Ruwini Wijesiri
Senior Software Engineer,
WSO2 Inc.

Mobile : +94716133480

<http://wso2.com/signature>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to