DEV Community

Ilya Mikhasik
Ilya Mikhasik

Posted on

Our System Series: Architecture Overview

Previous: Introduction to Our System Series

Our system uses a four-tier microservices architecture:
Frontend → Application Services → Registry Services → Database

Each tier has a specific responsibility. The frontend handles user interaction, application services implement business and supporting workflows, registry services provide reusable database operations, and the database stores entities and their relationships.

The system uses a graph-like data model consisting of entities and links. Entities can represent users, projects, accounts, or virtually any other type of object required by the application. Links represent relationships between entities.

Instead of creating a separate relationship table for every possible pair of entities, the system uses a general links structure. A link contains the identifiers of the connected entities, its direction, type, weight, and any additional information stored as JSON.

This approach allows us to introduce new entity types and relationships without redesigning the entire database schema. It also provides a flexible foundation for representing complex networks of connected objects.

In the following articles, I will explain the responsibilities of the application and registry services in more detail. I will use the Signup Service as an example to show how the different tiers interact during a typical business workflow.

Next: User Signup

Top comments (0)