Currently, we are pursuing a microservices architecture based on Google's Cloud Platform (GCP) consisting of roughly 6 - 7 services all exposed via a GraphQL mesh and IAM authentication. Having said that, we want you to bring your ideas and experience to the table too to help us make these decisions.
Live Data Feeds
The app relies on the consumption of multiple live data feeds from multiple different sources. (Some of these feeds will be within the minute refresh cycle while others might be daily). These feeds need to be collated, organized and then provided in an accessible structure via external interfaces. All of this needs to be done in a cost-effective way so as not to incur large costs for compute.
Robust feed collection will be via REST API and XML
Storage for 17 different sports with 175 competitions within those sports.
Each sport will have a selection of betting markets (odds collected) for each game/event
Setup schedule for collection of odds for each sport/competition
There will be a need to store large amounts of historical and up to date data that should be easily accessible and maintained.
Design databases to store bookmakers' odds
Design schema and specify primary keys
Part of the solution involves analysis of provided feed data and delivering decisions based on that data. There will be logic implemented server-side that makes these decisions.
Use cloud functions to provide executable logic for betting tools using mathematical formulas.
The entire cloud infrastructure will need to be accessible to the app ideally via a single GraphQL interface. Additionally, each of the services developed must be modular and communicate via a single interface such that one may be removed without disabling the entire system.
Design microservices communication via PubSub
Expose functions and databases via GraphQL for the app consumers
The app will contain sensitive and financial data and as such, all premium user requests will require authentication via IAM or similar. Additionally, there will be financial transactions involved that will require a certain level of stability.
All services provided will need to be thoroughly tested to ensure that decisions and data presented to users are accurate. This will involve unit, integration and performance testing at all levels of the solution.
Google Cloud (GCP)
NodeJS || Python