Ed-Fi API Integration Architecture for Data Providers
Introduction
This knowledge base article attempts to provide an overview of the architecting an Ed-Fi API integration.
If you haven’t already completed:
- Ed-Fi 101 – Welcome to Ed-Fi
- Ed-Fi 102 – Introduction to the Ed-Fi Technology Suite
- Ed-Fi 251 – Technology Providers Playbook - Particularly the Mapping to the Data Standard section
We recommend doing so before attempting to digest all the information presented in this article.
Background
Architecting an Ed-Fi API integration can be complex. This document seeks to surface things one should consider when implementing an integration for their application. In this document, we try to not be overly prescriptive when it comes to programming language or software. We acknowledge that programming languages and tools can look very different from vendor to vendor and by staying tool agnostic, we hope to provide guidance that is usable by all.
While this knowledgebase article does not go deep into the dependency order built into the Ed-Fi API, you can find more information in Resource Dependency Order as well as the Ed-Fi API Resource Dependency page in the Ed-Fi Academy course Publishing Your First Set of Data.
Throughout this document, we will be using a fictional student information system, Limitless SIS, to better explain various aspects of architecting an Ed-Fi API integration. For the sake of brevity, let’s imagine that Limitless has decided they will sync information from their SIS to the Ed-Fi API resources below.
The arrows note the dependency order that must be adhered to. While data may be sent to Local Education Agencies and Students at the same time, data must be sent to Local Education Agencies prior to sending data to Schools.
While this document is written to assist source system vendors who are developing an Ed-Fi API integration in-house, we also encourage you to seek out a managed service provider or system integrator who can lend their expertise when it comes to developing or even hosting the integration for you. You can find a list of managed providers on our registry and discuss this with our Vendor Team directly.
Early on in your development of an Ed-Fi API integration, you will want to understand how your data conforms to the Ed-Fi API. We refer to this as the mapping process. Understanding how the data in your application is represented in the Ed-Fi Data Standard can greatly ease the initial development of the integration as it provides something tangible to work towards.
Architecture
Overview
The goal of any Ed-Fi API integration is to create, update, and delete data on a target Ed-Fi API as it changes in the source system. The Ed-Fi API is a RESTful architecture and conforms to the rules one would expect in that architecture when interfacing with API resources.
In our example, Limitless SIS has already mapped the data from their application to the Ed-Fi API resources below.
Their Ed-Fi API integration has the following components which we will dive into in the following sections:
- A read-replica of their application database to reduce strain on production systems
- An Ed-Fi sync service which is the codebase that is processing the data and calling the Ed-Fi API
- A sync database to store information related to previous syncs