Core
The Core is a comprehensive suite of solutions necessary for implementing various business tasks and beyond. Its goal is to free the development team from the need to assemble numerous different solutions and techniques to build a web application with all its essential parts, starting from connecting the frontend with the backend and authorization, and continuing with a well-thought-out ORM, an intelligent caching system, a profile for each entity, a flexible access system, logging, and many ready-made solutions for various specific but not uncommon tasks, such as dropdown list queries for field editors or filters, or building data for rendering trees for hierarchical data. On the frontend side, there is also a developed framework that allows loading menus from scratch, working with tables (based on entity profiles received from the backend), forms (movable, scalable, and collapsible), and frames (not to be confused with iframes) embedded in forms or modal windows (anywhere), which also allow displaying entity fields according to profiles from the server and/or implementing custom layout and logic. If desired, separate React applications or components can be integrated and connected to the Core backend.
In addition to fulfilling basic web application needs, the Core contains implementations of frequent business processes, such as purchases, for which interconnected and well-functioning chains of entities are implemented: from products (goods/services), orders, payments created for them (with the possibility of partial payments and various methods), and a separate entity for payment system transactions for universal interaction between payments and external payment systems, to an internal account system with deposits, withdrawals, and transfers, featuring an architecture that ensures financial data integrity. Or, for example, a system for collecting events (e.g., successful purchases) and assigning specific actions to them, which allows separating the logic of various sequential actions into independent processes (and, if desired, moving them to a separate instance).
The Core is built as a monolith, but all shared data, namely cache and locks, are written so that they can be moved to an external fast storage, such as Redis, at any time. This allows running multiple instances and distributing the load by simply increasing resources or separating logic across different machines.