First draft architecture ComedyPlay First draft architecture
General Two big entities Content needs: Users needs Content: Video, GIF, Text, etc. Users: generator, consumers Content needs: Fast Response time worldwide, copyright protection, statistics, right format for every devices, ranking, search, tags, channels Users needs GDPR, reputation, chats, favorites, followers, statistics, worldwide, notification, subscription, discovery, intelligent suggestion
High level solutions Cloud is mandatory Starting small but open to be big Pay as it goes Tools to store, convert, stream video optimized for every device Worldwide database with sub-ms response time Blockchain for tokens and payments and rewards https://azure.microsoft.com/en-us/solutions/digital-media/ https://azure.microsoft.com/en-us/solutions/blockchain/ https://azure.microsoft.com/en-us/services/cosmos-db/
API to be programmed: Users Basic Sign up Login Logout Cancel subscription Lost password Reset password Change user attribute
API to be programmed: Content Basic Upload content (with basic attributes) Retrieve content (depending on device) Delete content Retrieve content attributes (type, flags, open or paid, etc.) Change attributes (from paid to free, type, flags, private to public, private to share-with-Friends, protected (DRM) or not, etc.
API to be programmed: Wallet Create a wallet (create pubpriv key país, etc.) Delete a Wallet Add tokens to wallet [retrieve tokens from a wallet is not seen as API for security reasons] Add tokens from Seeing an AD Add tokens from Post a video Add tokens from Counselling Add tokens from Voting Move tokens to another wallet from Buy a content Move tokens to another wallet from Put an Ad
API to be programmed: Extended (1/4) For extented we mean all the APIs that Manage extended attributes for content and/or for user Make an action by an users with content Make an action by a content for user
API to be programmed: Extended (2/4) Manage extended attributes for content and/or for user Users Change status/Check Status Open a chat with another user(s)/Chat/Close a chat/ Add a friend/delete a friend Add a contact/Delete a contact Add user to list of “bored users” Be notified that a friend is found in list “bored users” Content Update seen counter Update like/not-like counter Update favorite counter Update channel counter Update paid counter
API to be programmed: Extended (3/4) Action by an users with content Share contents with (Friends/contacts/public) Suggest content to a (friend/contact/public) Create a channel of content/add-delete content to a channel/Change attribute of a channel (ownership/type/private-public,etc.) Suscribe-desubscribe to a channel/author Search content (in all ComedyPLay, in a channel, in favorites, in favorites of Friends) Search content outside/Include content from outside Post a content Vote a content Put a content in my favorite
API to be programmed: Extended (2/4) Actions by a content for user Matching a content to users Notify to a user when a new contents for his/her attribute is posted
General Front/end (React, Javascript) External API pc tablet smartphones echos INTERNET General Front/end (React, Javascript) Azure Notification Hubs React components React components React components React components Azure Event Grid Wallet Azure API Management ComedyPlay Basic Users Management API ComedyPlay Extended Actions API ComedyPlay Content Management API Ethereum Node Azure CosmoDB Azure CosmoDB Azure Media Services Azure Blob
Main points of architecture Blue part are Azure parts (to be configured) Red parts to be programmed Yellow part from Ethereum Divided in microservices with two end poinit API (to be called from outside and inside) A react component to integrated easily and independently in web/Smartphone applications Integrated wallet for tokens transactions Event Grid to manage all the calls from Front End as event and easily compose the different actions and notifications to arise CosmoDB for (almost) infinite scalability Extremely fast access worldwide Our Ethereum node Azure Media Service to make all the task of Coding and streaming with the right format to any device Azure notification Hubs to manage notifications to users Azure API management as security layer and quota control for internal and external users Azure, CosmoDB (and everything) to keep the cost of the platform completely aligned with number of users and revenue
Development plan
First wave Detailed specifications of architecture Implementing the Azure Development environment Details specification for second wave All the screen definition (web and mobile) All the Second wave details functional specifications Hiring
Second wave Other All the User Basic API All the Content Basic API Wallet API Create a wallet (create pubpriv key país, etc.) Add tokens to wallet Move token to another wallet Extended API Users Change status/Check Status Add a friend/delete a friend Content Update seen counter Other Share contents with (Friends/contacts/public) Search content (in all ComedyPLay) Post a content Vote a content All the UI for iPhone (or Android) for all the API on this wave
Third wave All the missing screen and API Signboard
Second wave First Wave Myself 2 months 4 months MVP ready Full application ready First Wave Myself 2 months Second wave 1 iPhone programmer 4 API programmers 1 DevOps 4 months Third wave 1 Android programmer 1 UI programmer 1 Devops 3 months