Skip to content

Instantly share code, notes, and snippets.

@jsoningram
Last active February 9, 2016 00:18
Show Gist options
  • Save jsoningram/f90bbb1fff8774419c19 to your computer and use it in GitHub Desktop.
Save jsoningram/f90bbb1fff8774419c19 to your computer and use it in GitHub Desktop.

App

  • Wordpress
  • Roku
  • iOS
  • Android

Caching Layer

Cache third-party requests.

  • Varnish

Message/Queue

Possible options

  • ActiveMQ

API

Domains that our API will be responsible for.

  • Subscription
  • Account
  • Authenticate
  • Video
  • Coupon

Services

Third-party services that the API will interact with.

  • Zuora
  • Janrain
  • KMC
  • Coupon

API Responsibilities

Halogen

MTOD Profile

  • Create Profile [TEN]
    • api creates a local copy of user profile [TEN]
  • Create Zuora Profile (iOS, Android, Roku) [Zuora]
  • Associate Janrain ID and Zuora ID (upon cc processing) [TEN]
  • Add Favorite [TEN]
  • Remove Favorite [TEN]
  • Add History [TEN]
  • Clear History [TEN]
  • Add Bookmark [TEN]
  • Remove Bookmark [TEN]
  • Get Profile [TEN]
  • Get Profile Favorites [TEN]
  • Get Profile Bookmarks [TEN]
  • Get Profile History [TEN]
  • Get Profile Subscription Info [TEN]
  • Manage Devices [TEN]
    • Add device
    • Remove device
    • List devices
  • Get Billing Info [Zuora]

Subscription

  • Get Zuora product catalog (full catalog to cache) [Zuora]
  • Get default rate plans (depends on device and country) [TEN]
  • Apply Coupon [Zuora]
  • Preview Invoice [Zuora]
  • Add Subscription
    • Notify Coupon System [Zuora]
    • Process Payment (rate plan, start date, Zuora ID) [Zuora]
    • Update local profile [TEN]
    • Update Janrain profile [TEN]
  • Cancel Subscription
    • Notify Zuora [Zuora]
    • Update local profile [TEN]
    • Update Janrain profile [TEN]

Video

  • Get Video Category Heirarchy (cached locally from KMC) [Kaltura]
  • Get Video Listings [Kaltura]
  • Get Video URL [Kaltura]

Backend Tasks

  • Event Listeners
    • Email bounce back [Zuora]
    • Payment failed [Zuora]
    • Force Cron jobs
  • Cron Jobs
    • Reload Video Category Heirarchy
    • Reload Rate Plans
  • Logging
  • API Authentication
  • SSL

Service Responsibilities

Third-party services we use

Zuora

  • Billing
  • Subscription
  • Payment
  • Account Summary

Janrain

  • Single profile info
    • Email
    • Name
    • Phone
  • Schema info
    • Is MTOD Subscriber
    • MTOD Subscription plan

KMC

  • Videos
  • Players
  • Categories

Coupon

  • Provided by Zuora
  • Manage coupon use
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment