Pathwright is built on a "Software as a Service" model which means you don't have to worry about the highly technical parts of running software like:
- Hosting large amounts of files and code and serving them to any location or device reliably, securely, and quickly.
- Continually updating code to make enhancements, fix bugs, or upgrade to new versions of code libraries.
- Backing up code changes, data, and files.
- Complying with technical standards like PCI Compliance for Commerce or GDPR requirements.
- Keeping integrations with with specialized services up to date (like Google Analytics, Stripe, and more.)
We do all of that and more for you so you don't have to worry about it. However, if you're curious about how we do that behind the scenes, read on.
For a visual, higher level view of how all this fits together, see this diagram.
When you or your learners view your Pathwright account, here's the journey they take through our infrastructure:
Our Kubernetes cluster
Pathwright uses Amazon Web Services to host our servers, which is an industry leader in cloud computing used by organizations such as Netflix, Facebook, and NASA. We use Amazon EKS to run a cluster of servers, which, using Kubernetes, intelligently balances platform load between different servers to ensure fast and reliable access to the Pathwright platform. Our cluster is run across multiple availability zones, ensuring we are resilient to downtime if one of Amazon's data centers were to experience network issues.
Running a Kubernetes cluster streamlines and speeds up the Pathwright development process, so that we can safely make quick, frequent updates to the code each week.
Pathwright operates multiple services behind every school.
- Backend. Our backend is responsible for the core data retrieval and modification tasks necessary to support the operation of a school. The backend also connects to other third-party services for tasks such as sending email or providing search functionality in schools.
- GraphQL. We run another API server for retrieving data from the backend via GraphQL, which provides a faster and cleaner interface for our developers to work with data and write new features for Pathwright.
Microservices. We are working toward gradually breaking up our backend into separate services as we see fit, to better support speedy operation of your school.
- Reporting. The reporting microservice is responsible for all report generation capabilities, as well as generating invoices for your school's subscription to Pathwright.
Our data layer
We use three main services to host data.
- Amazon RDS. We use a PostgreSQL database for storing all school data.
- Redis via Amazon ElastiCache. Redis is used for caching commonly accessed data in order to speed up your school.
- Firebase. We use Firebase to store Blocks data, as well as for real time updates within your school.
Pathwright also integrates into third-party services to provide functionality such as email, search, and payments.
- Stripe. We use Stripe as the payment processor for Pathwright and all schools.
- Mandrill. Mandrill by MailChimp is used for all email-related functionality.
- Algolia. Provides search functionality for features like library search and the Blocks media manager.
- Imgix. Used for real time image processing, such as cropping, masking, and blurring operations.
- Filestack. Provides our file upload handling via a friendly UI.
- Mux Video. Allows us to provide schools with the ability to upload custom videos that can then be streamed from any device.
See a full list of sub-processors here: Pathwright sub-processors.