• Overview of attendance functionality
  • Feature/service architecture
  • Integration architecture
  • Impact and future guidelines
  • Attendance shows up in a roster view with students on left and tabular content on right with the Day, if they were present, late, absent and excused columns.
  • A grade can be calculated for it and it is added to grade book.
  • Principles for New Solution
    • Foundation for future integrations into product portfolio
      Separate application and data store, singer source of truth
      API First
      Take advantage of latest tech

    Service Architecture

    • Multi-tenant service, data serrated by unique user I’d
    • Application tier developed in java
    • Dropwizard library for API/controllers
    • JDBI for data access
    • Flyway for database scheme management
    • Deployed as docker containers on Kubernets
    • Postgres 9.6 for database
  • Integration Architecture
  • Security Architecture
  • Why did we choose this architecture?
    Building Functionality as a separate service has advantages.
    • Separate application & database adds no load to learn
      Natively built on REST API, easy to integrate into other products
      Standalone, small service can choose the most appropriate technologies for a given function
      Separate service can be tested and deployed in isolation.

    Integration Architecture

    • Standalone SaaS easily integrated across portfolio
    • integrate 3rd party services through developer portal (future)
    • API first (REST) enables complete access to service functionality through APIs
  • Blueprint for future work
    • Building services as separate has advantages can can be applied to broad set of problems
      Important architectural pattern that will help apply on larger scale over time
      Leads to tighter integration and more consistent functionality across product suite
      Services can be gradually rolled out and integrated Bb applications
      Scalability of entire eco-system will improve over monolithic application: more stable, more consistent and predictable performance
      Used in other areas besides attendance, box integration, cloud storage integration, Ultra institution pages.

    General Impact

    • Service based architecture is mostly transparent to end users, but affects developers and integrators.
    • Not all data I contained in LEARN anymore
    • Not all functionality is available via Java API anymore
    • Data will be aggregated into data lake
    • Functionality is exposed through REST APIs
    • Use REST APIs to future prof customizations and extensions.