Skip to content

Architecture

Euro-Office is a microservice-style platform. The diagram below shows the high-level component layout for a typical single-node deployment.

flowchart LR
    Browser[Web browser]
    Desktop[Desktop editor]
    Browser <--> DocService
    Desktop <--> DocService
    DocService <--> Redis[(Redis)]
    DocService <--> RabbitMQ[(RabbitMQ)]
    DocService <--> DB[(SQL database)]
    DocService --> Converter[FileConverter]
    Converter --> Core[Core C++ engine]
    DocService --> Storage[(Object storage)]
    Converter --> Storage
    AdminPanel <--> DB
    DocService --> Metrics[(StatsD)]

Backend services

Service Role Default port
DocService Real-time collaboration, Socket.io transport, document session orchestration. 8080
FileConverter Wraps native C++ converters for format translation.
AdminPanel License management and system monitoring UI. 9000
Metrics StatsD-based metrics emission.

All four are Node.js processes living in the server repository.

External dependencies

  • Redis — Session state and real-time coordination.
  • RabbitMQ — Inter-service messaging.
  • SQL database — One of MySQL, PostgreSQL, MSSQL, or Oracle.
  • Object storage (optional) — S3-compatible or Azure Blob; falls back to local filesystem.

A configuration section covering the setup of each will follow.

Frontend

Editors are vanilla JavaScript with RequireJS modules — no React/Vue/Angular — built per document type and served as static assets. See components → web-apps.

Native core

A C++ rendering and conversion engine. Output artifacts are consumed by FileConverter at runtime. See components → core.

Scaling out

For multi-node deployments DocService, FileConverter, and storage scale horizontally behind a load balancer; Redis and RabbitMQ are clustered, and the SQL database is replicated. An upcoming high-availability configuration page will cover the topology in depth.