-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Explore caching options for calling Paid APIs (Cicero) #294
Comments
Hello, @thyeggman, @paramsiddharth. Just to make sure I understand, does the requirement of this issue involves implementing the solution I researched/found? Or would that be out of the scope of this issue? |
@ahn-nath Yes, I think this issue requires some research. @thyeggman Jacob may be better able to explain to you what he discovered. It would definitely be in scope of this issue to research more, because we want to come up with a robust plan for the issue first before actually starting to code it. What do you suggest, Nath? |
Yes, Param. Thanks for responding, but my question is: does solving this issue specifically requires implementing the solution of the research? That is, coding it? Certain keywords and statements (such as the last paragraph of the description text) and the “explore” of the title confused me a little in regard to the objective. |
@ahn-nath Researching more and coming up with a finalized version of the plan is part of the objective. The details in the issue description are a mere starting of the research we'll need for implementing it, which is also a part of this issue itself. |
@paramsiddharth |
Yeah, this issue is meant to encompass everything. If it makes sense, once a solution has been decided on, we could create another issue with details for implementation. |
Result of my research and assessmentList of libraries we have compared:List:
NPM GitHub
Logic used to compare libraries:We have prioritized the values or factors: reputation/popularity, maintenance frequency and status, relevant features for our case. Reputation/popularity Ranking:
Maintenance frequency and status Ranking:
Features
Benchmark performance:
Ranking:
NOTE: given the last rankings, I am keeping the top 2 to focus on testing them and getting to a final result. Personal experiencePlayground space There are two versions: I could not install axios-cache-adapter in Codespaces with the project and have used JavaScript Playground to fairly compare both libraries. I believe is related to this issue: lisaogren/axios-cache-adapter#270 Opinion: Ranking:
Final thoughts:I support that axios-cache-interceptor is the best option:
I will be looking forward to your thoughts. |
@ahn-nath Amazing work on the research, Nath. It really helps a lot. You took time to explicitly test out the individual libraries and compare their features, which is exactly what we need to make the final decision on what to use for implementing the caching moving forward. It is unbelievable how well you document your work and research. Good job! Moving from here, let's wait for Jacob (@thyeggman) to assess the research and share his opinion of what path we should choose. |
Thanks for your thorough examination of all the libraries! I had originally picked |
Hi, Jacob. Thanks for the feedback. Good. I will move on with the implementation then. |
@ahn-nath a friend of mine sent me this issue and omg, nice research!. I'm super happy that you've decided to go with axios cache interceptor 😍 |
Hey, @arthurfiorette. I am very pleased to receive this. You are doing a great job with the tool, and it's only to be admired, so thanks! |
The cicero API is billed on a crediting system. Each API call costs a certain number of credits. Some APIs are free to use, but as Amplify scales, the cost of using those APIs can become very high.
We are using axios to make requests to these APIs. Axios has a number of different libraries that support caching:
Investigate these libraries to see what would be the best option to cache API calls to reduce the number of credits we use.
The text was updated successfully, but these errors were encountered: