Salesforce

Coursedog Application Architecture

« Go Back

Information

 
TitleCoursedog Application Architecture
URL NameCoursedogApplicationArchitecture67fda7a7b5f30
Question
Coursedog Application Architecture
Answer

Overview

  • Our stack consists of our main Admin Application that is running an Express.js server on the backend and a Vue.js-based JavaScript client application in the browser.

  • Additionally we are running two Universal JavaScript applications using Nuxt.js (Node.js backend with client-side Vue.js Application) for our public Catalogs and Events services. Those connect with our main Admin Application through our REST API.

  • We are also employing several functions-as-a-service services to handle very specific processes like schedule optimizations and PDF generation.

 

Separation of Concepts & APIs

  • Our application architecture separates concepts (e.g., user, course, building) from each other, and communication between them relies on a well-defined API to follow the separation of concerns design principle. It is deployed as one service. 

  • However, heavy-duty tasks, like PDF generation, optimizations, mailers, etc., have their own environments (e.g., in AWS Lambda) or are computed in a background worker.

 

Architecture Diagram

 

Data Transfer Protocol

Build Methodologies & Properties

Coursedog's product platform is built using the following methodologies and properties based on Web Scale IT and SOA: 

  • Our products are a self-contained environment that contains many underlying micro services.

  • All customer interaction with our product is executed through either a UI interface or HTTPS  REST APIs.

  • Our backend environment is distributed across multiple servers running simultaneously in an auto-scaling environment.

  • Our system is failure-tolerant and self-healing with distributed recovery protocols that isolates failures to single servers, and hot-replaces affected servers without causing downtime for end users.

  • Embedded analytics provide continuous monitoring and real-time error alerting.

  • All code deploys are from versioned objects and are executed after the completion of an agile development cycle

Related Articles


Powered by