Cache
What is this feature?
Normally, Agave acts as a pass-through service that moves data in and out of source systems. With caching, you can optionally enable Agave to temporarily host data retrieved from source systems in a secure, local database. This enables enhanced features not otherwise available.
What are the benefits of this feature?
- Faster Performance: caching allows Agave to return data much (10x) faster, which provides a better user experience. For example, with caching, fetching 500 records from CMiC takes 1.8s instead of 18s.
- Advanced Webhooks: caching allows Agave to provide webhooks when a source system doesn't offer them. To enable this, Agave polls the source system periodically for data changes, then emits events to notify you of those data changes.
- Advanced Filtering: caching allows Agave to support filters on all properties (both unified endpoints and source_data fields), even if such filters are not supported by the source system natively.
- Data Aggregation: caching allows Agave to perform aggregation operations that source systems don't support natively. For example, Agave can computing and return statistics for numeric properties, like average / min / max.
- Avoiding Rate Limits: caching allows Agave to avoid hitting rate limits by querying data cached from the source system instead of the source system directly. This is especially helpful if you're querying data that hasn't changed since you last queried it.
Is this feature enabled by default?
This depends on the Agave product you're using:
- For Agave Sync, caching is enabled by default.
- For Agave Analytics, caching is enabled by default.
- For Agave API, caching is disabled by default.
How do I turn this feature on/off?
This depends on the Agave product you're using:
- For Agave Sync, you can submit a request to us to disable caching (since it's enabled by default). Note: this will likely degrade performance noticeably.
- For Agave Analytics, you can submit a request to us to disable caching (since it's enabled by default). Note: this will likely degrade performance noticeably.
- For Agave API, you can enable caching (since it's disabled by default) by setting these headers in your API requests:
- To read from the cache (instead of the source system):
Should-Read-From-Cache: true
- To write to the cache (instead of the source system):
Should-Write-To-Cache: true
- To bulk populate the cache:
POST /cache/repopulate?type=vendor
(returns an id for next step)GET /cache/cache_id
- poll this endpoint until status is either
finished
orfailed
- poll this endpoint until status is either
- To bulk delete the cache: today, deletion is manually performed by Agave.
- To read from the cache (instead of the source system):
Does Agave encrypt the data it caches?
Yes, Agave encrypts all cached data at rest and in transit. We comply with all data deletion requests per GDPR and CCPA requirements.
How do I know Agave's cache is secure?
Agave limits access to production databases only to authorized services. Agave hosts its databases in private AWS subnet behind a secure firewall. The only services whitelisted for access are Agave's production EC2 instances, which are also in a private subnet only accessible to Agave's load balancer. We perform daily database snapshots, which are encrypted, stored in Amazon S3, and expire after 30 days. For more information, see https://security.agaveapi.com/?itemName=data_security.
How is data formatted within the cache?
As shown in the example below, the cache contains property names from the Agave unified model, data types, and a JSON blob with data from the source system (source_data).
Here is an example for a Vendor data object:
Which source systems and models are supported?
This is our current coverage — Let us know if you need more:
- Autodesk Build
- AP Payments
- Expenses
- Projects
- Subcontracts
- Vendors
- BIM 360
- AP Payments
- Expenses
- Projects
- Subcontracts
- Vendors
- CMiC
- AP Payments
- Expenses
- Projects
- Subcontracts
- Vendors
- InEight
- Employees
- Ledger Accounts
- Projects
- Vendors
- Viewpoint Vista
- Employees
- Ledger Accounts
- Projects
- Vendors