How to Plan Software Architecture For eLearning Platforms

How to Plan Software Architecture For eLearning Platforms

Julia Dreiko - Strategic Account Manager
5 minutes read

Despite elearning becoming widely adopted over the last 2 years, schools, universities and at-home learners are still highly aware of shortcomings in distance learning. The most successful elearning providers (think Skillshare, Udemy, and even Harvard University) have found ways to bridge the gap between traditional remote learning, in order to provide truly advanced educational environments.

To achieve these results, they’ve carefully built learning systems that serve their organization (and more importantly, their learners) with a modern approach to software architecture. So what is the ideal architecture for your eLearning platform?

Let’s revisit what elearning systems looked like from 2010 to 2015. In this policy report for online mathematics enrollment, even the most advanced custom-built systems were monolithic platforms, with very few dynamic components:

“Distance learning courses typically used the same course outlines, had the same course projects, and evaluated instruction in the same way... They also often made the same use of common exams.”

The new breed of elearning platforms wants to be flexible and efficient, unlike legacy architectures like the one described above. The capabilities of a single piece of software is no longer diversified enough to satisfy the requirements for education.

In this article, I want to cover the decisions your elearning business needs to make before landing on a software architecture. A strong architecture ensures that you’re prepared to deliver learning experiences in ways that are highly maintainable, easy to scale, and fast to launch features in the future.

Here at Polcode, we’ve built and delivered many modern elearning systems for clients who want to change how learning is delivered online. At the start of every project, all of our efforts are poured into software architecture decisions, and this continues on throughout the lifecycle of our development process.

But Wait, What Is Software Architecture?

There’s no short answer here. A quick search will bring up an endless list of articles, opinions, and even expensive $500 introductory courses about why software architecture is important. However, understanding software architecture is actually simple (and free). It is both the process and the final product of planning, designing and deploying software or an application. It is a comprehensive set of decisions and technologies that are made to solve a specific real-world problem—the problem that your business or organization aims to solve.

In simple terms, your digital product will achieve whatever its software architecture allows it to, either enabling ease of growth, or creating a series of roadblocks that will slow down your business. Software architecture thinks about your most important business requirements, and accommodates them through technology assembly.

At the very highest levels of architecture, we are presented with two choices: the “monolithic” versus “distributed” approach to software. Despite the popularity of cloud solutions and microservices in the distributed approach, there is no architecture that is ‘better’ for building a learning system. It all comes down to the problem you are trying to solve:

  • Monolithic Learning Software Architecture - a single, custom-built application, that performs all actions and deploys as a one unit. Despite the popularity of moving away from monolithic architectures in software development, eLearning platforms don’t face the same issues. Duolingo, for instance, is still largely built with a monolithic approach, but is slowly moving towards a ‘modular monolithic’ infrastructure that hybridizes the two approaches. Having an isolated platform with a single codebase can make development less complex, and easier to trace errors. This can also be a disadvantage. As the codebase grows, so too does managing it.
  • Distributed Learning Software Architecture - many components are resourced from different platforms, and each component can cooperate with one another over a network, and reach a collective outcome. Here we find the popular ‘microservices’ approach to architecture, where each element can be scaled independently. This limits the amount of impact any single change has on the application, and allows concentrating efforts on a specific business solution, such as launching a new feature, or adding lots of new users. For example, calling in components for push notifications to remind students about exams, or enabling live video sessions are some basic examples where Software as a Service (Saas) works well.

I want to reiterate that neither architecture is ‘better’ than the other. The decision to choose an architecture has pros and cons, pros and cons. Both architectures will solve a problem, and generate new problems at the same time.

Do The Groundwork Before Software Architecture

The first step in planning is to ask yourself important questions about your business, its mission, and your vision. Spend as much time as possible to understand the problem your eLearning software is trying to solve. As time goes on, it becomes more difficult to gather these requirements and needs, so take time to create, edit and reiterate before settling on a plan.

  • Define a clear vision and user story

Clear visions are simple and straightforward. Take for instance a healthcare learning app statement: “Our new platform needs fast deployment of a basic virtual classroom. Users need to be able to see surgical sessions live.” This kind of vision statement gives software developers a very good idea of what practices and technologies will come into play, without knowing exactly which solution will be used.

  • Create one page of requirements and constraints

Put together all priority requirements your business has. Does it need to work online? Will it make use of the cloud? Perhaps there are constraints on data storage locations or personal information compliance in your region? These constraints will tighten the vision, giving clear definitions and boundaries.

  • Roadmap KPIs and metrics

Which key performance indicators are most important to your business? Which ones are most important to learners? Are you handling a large number of concurrent online users? Are your learners streaming huge amounts of video content? If so, then metrics for performance are important, and content loading speeds will need to be prioritized. On the other hand, if your platform caters to learners taking exams, your developers may prioritize other aspects of software that can forgive some performance metrics, and create a better test-taking experience.

  • Vet the early stage planning

Once you’ve established the points above, get them reviewed by every business stakeholder in the process—executives, marketing, design, etc. Involving other people during this stage ensures that there are no loose ends, or worse, conflicting opinions about the vision.

Notice that none of these points mention software architecture at all. That’s because the answers to these planning stages will translate into your architecture vision, which is where the software developers (like us) come in.

Diagram The Architecture Vision

Once you have a clear vision that is well-documented, it’s time to go ahead and think about the software architecture itself. It can really help to visualize this step, even if it’s as simple as the one shown below:

https://www.lucidchart.com/blog/how-to-draw-architectural-diagrams

More advanced architecture visualization tools available for free as well. Tools like Structurizr or Visual Paradigm are interactive and make it easy to collaborate on diagrams with others. The architecture of your elearning software will provide an abstract view of your system. It contains all the details of implementations, technologies, services and data connections in your platform. Eventually, it will look like something more complex like the diagram shown below (but don’t worry about this in the early stages of planning!)

https://dev.to/javinpaul/5-best-courses-to-learn-software-architecture-and-system-design-for-programmers-1879

3 Different Types of Software Architecture Pattern

Now that planning is out of the way, there’s a few architectural patterns that have proven themselves to allow digital businesses to scale easily. There are quite a few architecture patterns out there, but eLearning software tends to fall within the 3 categories of layered, event-driven, or microservice architectures.

1. Layered Architecture

This is the most well-established architecture that works for new startups and global enterprises alike. It is divided into four layers; presentation, business, persistence and database, and each layer performs ‘roles’ within the application that move from one layer to the next.

For example in an eLearning cloud-based application, the business logic layer would handle learner subscriptions, validating actions performed in presentation layers. The persistence layer enables seamless communication between the other layers, and the database would act independently from the other layers.

  • Pros:

Super easy and fast to develop and deploy. Enables rapid creation of an eLearning MVP for startups. Powers simple apps that require easy maintainability and automated testability.

  • Cons:

In layered architecture, there are no well-defined ‘roles’ which limits its ability to scale into a real powerhouse software architecture. Agility, scalability and performance are sacrificed for speed and simplicity.

2. Event-driven Architecture

Many eLearning platforms have prioritized high performance, fast page load speeds, and agile-friendly development. Event-driven architecture is perfect for these types of business goals, where asynchronous capabilities provide reliably fast time spans between the call to an application and the response received back.

  • Pros:

Decoupled event processing means fast call and response times. Small components which work independently make it an agile-friendly architecture that scales well no matter how many new features or users are added.

  • Cons:

Events get tricky to manage when different modules are performing separate tasks. Ease of development and reliable performance and deployability are built on systems that can be extremely complex to test and develop as the platform grows.

3. Microservices Architecture

Microservices architecture is often seen as the antithesis of monolithic architecture. Each component is deployed independently, and combined into a single software delivery pipeline. Many popular online learning platforms like Udemy or Skillshare employ a microservice architecture, pulling in tiny bits of software from all over the cloud, as well as their backend, front and data systems, to deliver a cohesive experience.

Each component is accessed through a remote protocol, allowing each component to communicate over a network. This means separate components can be developed, deployed and tested without impacting the overall system. Small teams can make big impacts in this architecture, and there may be hundreds, or even thousands, of microservices being called upon for software delivery.

  • Pros:

Modern software approaches to distributed teams and distributed services (SaaS, PaaS, etc.) work well under this architecture, as small components can be managed easier, making it the best overall choice for scalability, maintainability, and ease of new feature developments.

  • Cons:

Components of each service need to be designed, developed and deployed individually. Performance can also take a hit, as processing power goes through more services.

Consult an eLearning Software Architect

Just like their physical counterparts, software architects are senior experts at crafting the appropriate designs based on your unique needs. Next generation eLearning platforms will be characterized through framework selections, component assembly and technology choices. A seasoned software architect can establish a concrete base for your next eLearning application by carefully crafting all of these elements together.

Reach out to Polcode’s eLearning Software architects to get the best architectural approaches for your next big eLearning project.

On-demand webinar: Moving Forward From Legacy Systems

We’ll walk you through how to think about an upgrade, refactor, or migration project to your codebase. By the end of this webinar, you’ll have a step-by-step plan to move away from the legacy system.

Watch recording
moving forward from legacy systems - webinar

Latest blog posts

See more

Ready to talk about your project?

1.

Tell us more

Fill out a quick form describing your needs. You can always add details later on and we’ll reply within a day!

2.

Strategic Planning

We go through recommended tools, technologies and frameworks that best fit the challenges you face.

3.

Workshop Kickoff

Once we arrange the formalities, you can meet your Polcode team members and we’ll begin developing your next project.