Odin · built in-house since 2018

The Odin platform

Our in-house technology platform that every product runs on.

Every FWalls product runs on Odin. We do not assemble them from off-the-shelf libraries and do not depend on outside platform vendors.

How the platform is built

Odin is a set of services and storages that are deployed together and talk through events. Any component can be replaced or duplicated without rewriting the application.

Services and events

Business logic is split into small services. They exchange messages through the broker instead of calling each other directly.

The log is the source of truth

State changes are recorded as events. The log restores both the current data view and the full history of operations.

Configured for the task

The platform is assembled per project: from a compact single-server installation to a distributed setup across several data centres.

Platform components

The platform is assembled from components we build and from open source we run and update ourselves.

01

Distributed message broker

Transport between services: queues and topics, guaranteed delivery, retries after a failure.

02

Server-side JavaScript implementation

Our own server-side JavaScript: one language on the client and the backend, shared code, types and validation.

03

HTTP(S) and TCP router

The entry point: TLS, request routing, load balancing, rate limiting.

04

Object-relational DBMS

Transactional data with a strict schema: payments, orders, reference data, reporting.

05

Document-oriented DBMS

Flexible structures and fast key access: profiles, events, pre-built read models.

06

Search engine

Full-text search and faceted filters across large catalogues and document archives.

07

RocksDB

Local on-disk storage: event logs, indexes and service state.

08

Redis

Cache and fast in-memory structures: counters, locks, sessions, task queues.

09

Websocket server (µWS)

Two-way real-time communication: chats, statuses, event delivery, work over unstable networks.

10

Cloud platform

Resource management and service runtime: isolation, quotas, autoscaling under load.

11

Distributed object storage

Files, images and backups: replication across nodes and fault tolerance.

12

Orchestration and configuration management

Deployment, update and rollback of services from a declarative description.

13

Monitoring and notifications

Metrics, tracing, logs and alerts that reach the on-call team.

14

Service configuration storage

A single source of settings and secrets with versioning and fast rollback.

15

React Native

iOS and Android apps from one codebase, updatable without a store release.

16

Golang

High-load services and the system components of the platform.

Properties

What a product built on Odin gets.

01

Event Sourcing and CQRS

State is rebuilt from the event log, and reads are separated from writes. That gives an audit trail for every operation, reproducibility and fast reads.

02

Updates without downtime

Two versions of a service run side by side. Rollout and rollback happen with no maintenance window and no interruption for users.

03

Modularity

Change one service without touching the rest: contracts and events instead of a shared codebase where one edit breaks another area.

04

Fast deployment

A new service is assembled from ready components. It is a kit for the task, not a project started from scratch.

05

A range of configurations

From a compact single-server installation to a distributed setup across several data centres.

06

A rich API

REST, WebSocket and event subscriptions. External systems connect to the platform without changes to it.

07

Multi-datacentre operation

Services run in several data centres: data replication, traffic switching and resilience to a site failure.

08

Uninterrupted operation

A node failure does not stop the service: redundancy, automatic restarts and degradation of individual features instead of a full outage.

Frontend platform

pastish2

Our own web framework: server rendering, live interfaces and a single file on output

pastish2 is a web framework we built ourselves for Node.js and Bun. This website runs on it, along with the Udeu online learning platform and our clients' back offices. Just as Odin covers the server side, pastish2 covers the client side: not an assembly of someone else's libraries, but our own foundation.

Server and client rendering

The server returns ready HTML that search engines can read, while client code brings the markup to life and updates pages without a reload. The mode follows the task rather than forcing a rewrite.

Our own server on uWebSockets

The server side runs on a high-performance HTTP server, and WebSocket for real-time updates is built into the framework rather than bolted on.

Multi-tenancy out of the box

One codebase, different brands: an overlay mechanism lets several clients live in a single repository. That is how Udeu, Ambitions and the media group's projects run.

Styling in one place

Styles are JavaScript objects driven by theme tokens, so colours and typography live in one file instead of spreading through markup. This website is built exactly that way.

A single file on output

A build produces one executable: deployment is a file copy, with no environment to prepare on the server.

Web and workstations

The same project builds into a desktop application. That is how the Ambitions platform and the RC Club call-centre back office were built for macOS and Windows.

pastish2 is an internal framework of the team: it is not published openly, its documentation is internal and there is no community around it. Clients benefit from it indirectly — through development speed and independence from third-party libraries.

A tool built on the platform

Reaper

One screen instead of SSH, systemctl and a dozen tabs

A web panel for operating a microservice backend: start, stop and restart processes, watch logs in real time, manage access policies, update services and edit individual records — without SSH and manual commands.

Reaper gathers the operational control of a distributed backend into a single window. An engineer sees environments and machines, a list of services with the number of running processes and memory consumption, switches between tasks and instances and acts in one click. Diagnostics live on the same screen: a log stream for the selected process and a combined live log across every service.

Reaper is an internal tool deployed inside the team's infrastructure and working with its environments. It is not a cloud service: it has no accounts or roles, no action log, no metric charts and no failure alerts. Today it is a web application; a desktop build is planned.

  • Environments and machines — switching between stages and servers
  • Services and processes — status, memory, uptime, instance count
  • Process control — start, stop, restart, add an instance
  • Logs in real time — per process and a combined live log
  • Access policies — toggling allow and deny per route
  • Editing entity data without connecting to the database
  • Bulk operations with progress and confirmation
  • Light and dark themes, interface in Russian

Platform

Compliance

The platform was designed around personal data protection requirements.

152-FZ

Personal data of Russian citizens is stored and processed on servers in Russia. Access is role-based and every action is logged.

Server placement

Data and computation are hosted in Russian data centres.

Russia

Data and compute in Russian data centres: 152-FZ requirements and low latency for users in Russia.

See Odin in action

We will show how the platform fits your task and demonstrate live products built on it.

Get in touch