30
Architecture
Our server is a standalone, reusable solution that is flexible enough to serve different front end clients of Editoria’s platform. We offer a range of web applications (clients) tailored to specific needs, supporting configurability in permissions and features such as the ability to ingest docx files and book-outline-first approach.
The architecture of the platform is based on microservices which allows us to delegate resource-heavy tasks from the main server, such as EPUB validation (using EpubChecker), docx ingestion (using XSweet), PDF creation (using PagedJS CLI), previewing a paged version of a book (using PagedJS), and converting HTML to ICML (using Pandoc). This ensures that our server can handle heavy loads.
Moreover, we use real-time communication technologies like WebSockets, which are dedicated for the platform’s chapter locking mechanism, and GraphQL subscriptions for broadcasting changes to all interested parties (clients).
Our entire infrastructure is containerized using Docker, which enables horizontal scalability. Our containers support for multi-arch x86, arm64 (Apple Silicon) for flexibility both in development situations as well as production deployments. Postgres is our choice for a reliable SQL data layer and we also use S3-compatible object storage for efficient data storage.
![](/images/870e78ad2890_medium.png)