Services and events
Business logic is split into small services. They exchange messages through the broker instead of calling each other directly.
Odin · built in-house since 2018
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.
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.
Business logic is split into small services. They exchange messages through the broker instead of calling each other directly.
State changes are recorded as events. The log restores both the current data view and the full history of operations.
The platform is assembled per project: from a compact single-server installation to a distributed setup across several data centres.
The platform is assembled from components we build and from open source we run and update ourselves.
Transport between services: queues and topics, guaranteed delivery, retries after a failure.
Our own server-side JavaScript: one language on the client and the backend, shared code, types and validation.
The entry point: TLS, request routing, load balancing, rate limiting.
Transactional data with a strict schema: payments, orders, reference data, reporting.
Flexible structures and fast key access: profiles, events, pre-built read models.
Full-text search and faceted filters across large catalogues and document archives.
Local on-disk storage: event logs, indexes and service state.
Cache and fast in-memory structures: counters, locks, sessions, task queues.
Two-way real-time communication: chats, statuses, event delivery, work over unstable networks.
Resource management and service runtime: isolation, quotas, autoscaling under load.
Files, images and backups: replication across nodes and fault tolerance.
Deployment, update and rollback of services from a declarative description.
Metrics, tracing, logs and alerts that reach the on-call team.
A single source of settings and secrets with versioning and fast rollback.
iOS and Android apps from one codebase, updatable without a store release.
High-load services and the system components of the platform.
What a product built on Odin gets.
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.
Two versions of a service run side by side. Rollout and rollback happen with no maintenance window and no interruption for users.
Change one service without touching the rest: contracts and events instead of a shared codebase where one edit breaks another area.
A new service is assembled from ready components. It is a kit for the task, not a project started from scratch.
From a compact single-server installation to a distributed setup across several data centres.
REST, WebSocket and event subscriptions. External systems connect to the platform without changes to it.
Services run in several data centres: data replication, traffic switching and resilience to a site failure.
A node failure does not stop the service: redundancy, automatic restarts and degradation of individual features instead of a full outage.
Frontend platform
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.
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.
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.
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.
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 build produces one executable: deployment is a file copy, with no environment to prepare on the server.
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
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.
Platform
The platform was designed around personal data protection requirements.
Personal data of Russian citizens is stored and processed on servers in Russia. Access is role-based and every action is logged.
Data and computation are hosted in Russian data centres.
Data and compute in Russian data centres: 152-FZ requirements and low latency for users in Russia.
We will show how the platform fits your task and demonstrate live products built on it.
Get in touch