Thu Apr 07 2022

Oiid - Step inside music

oiid is a premium music platform that allows fans to step inside their favorite songs in interactive ways.

The oiid music services is made up by two major parts; The native app for iSO and Android and the platform for serving the music files and and all metadata needed to ensure the oiid experience.

As the system architect for the oiid project, I worked on re-designing and implementing a completely new infrastructure to back the native apps. This entailed coming up for the architecture for a highly scalable client api which would be able to serve both json data and protected music files. An admin API and and admin application which would allow oiid to manage music files from record companies, and rework the files to be served using the oiid format.

Overall architecture

A system architecture diagram showing the oiid platform
The oiid platform - simplified

The platform was build on AWS, using highly scalable serverless components such as Lambda, DynamoDB and API Gateway. The serverless architecture was key to keep up with the highly varying demand experienced by oiid services and to keep the platform cost at a reasonable level.

Better performance, at a lower price

The old version of the oiid platform was build on more traditional resources. After the new architecture, the monthly cost for oiid was reduced by more that 80% and the platform became significantly faster to use for editors and for the consumer using the apps.

The admin api and application

The admin system is an internal system only accessible to oiid employees. The architecture is the same as described above. For the admin UI a custom React app was design and developed to suit the unique need for oiid to handle both lots of metadata end relations as well as uploading and managing large binary files.

My part in this

As a solution architect I was responsible for all technical aspects of this project, except the native apps. I also wrote large parts of the code for all systems.

Tools and technologies used

  • AWS Lambda (Typescript)
  • DynamoDB, S3, Cloudfront, Amplify
  • Deployment via the Serverless framwork