Repository navigation
For scalability: Event scraping method to implement #136
Replies: 1 comment
|
These are all great points, for the final solution we will be implementing something in the middle. Initially, we will scrape some events from major cities (Toronto, Mississauga, Hamilton, etc..) and store them in firestore. For all cities collection, we will also log the scraped time, this value will be used later to determine if the events in a city need to be re-scraped. After the initialization, there will be 2 ways the scraper can be triggered: Our google cloud scheduler will periodically call the scraper (we'll say once a day) to trigger a cloud function to re-scrape the top 10 (this number can be changed through experimentation) cities with the oldest scraped time. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Credit, this is written by @Goutam112
Feature purpose
This issue is regarding how the Eventbrite scraper scrapes events and displays them based on individual users' locations. For better future scalability support.
Solution 1
The Eventbrite scraper scrapes events in major cities and stores them all in Firestore. Based on the user's location, all events in the user's city are extracted from the respective Firestore collection and displayed on the application map.
Solution 2
The scraper scrapes events from Eventbrite based on the user location. In this case, the scraper API would be called every time the user launches the application.
Pros and Cons:
Additional context
The solution we choose to implement would impact what areas we would have to invest in when focusing on scalability.
In order to increase the scale of the application we would have to invest in both increased Firebase storage and better API call support. However, each solution would require a different proportion of investment in both fields:
For Solution 1 we would need to invest more in increasing Firebase storage.
For Solution 2 we would need to invest more in better API call support.
All reactions