With extensive experience in credit organizations, including major ones, in positions ranging from junior programmer to head of information systems department, I have gained insights into the inner workings of automated systems and technologies used in the banking sector.
These skills allowed me to develop my own line of software solutions—
Apostol.
When developing Apostol, I was inspired by the source codes of nginx. Therefore, system applications built on this platform meet high standards and are designed for high-load systems.
The Apostol software platform is developed in C++ using the event-driven programming paradigm with the application of epoll API.
Event-driven programming is used in server applications to tackle the scale problem of handling 10,000 simultaneous connections and more.
The software platform has a modular structure and includes an integrated toolset for receiving and sending data through such protocols as UDP, TCP, HTTP, and WebSocket. It also supports sending SQL queries to the PostgreSQL database management system using the libpq library.
When creating Apostol CRM, I was inspired by the architectural solutions used in the banking system New Athena.
Architecturally, these are very similar solutions. However, while "New Athena" is a ready-made product with a graphical interface operating on Oracle, Apostol CRM uses PostgreSQL as a DBMS, and a programmatic interface, or API, is used instead of a graphical interface.
The graphical interface is generally developed separately for each project, either as a Web or mobile application.
Apostol CRM allows the creation of multi-user, multilingual information systems with a modular structure and event-driven architecture.
An event can be defined as a "state change" of an object in a system. For instance, when a customer buys a car, the car's status changes from "for sale" to "sold." The car dealer's system architecture might consider this state change as an event, generated, published, defined, and consumed by various applications within the architecture.
The modular approach allows you to incrementally add new business tasks to the system, evaluating their results before completing the full development cycle.
System access is facilitated through digital interfaces:
The server-side API is described using the OpenAPI Specification and is available through Swagger UI.
API example:
OCPP CSS APIA data server is a program for collecting data from various industrial devices using protocols such as UDP/TCP/HTTP/WebSocket.
With subsequent data transfer and processing in the PostgreSQL DBMS.
An application server is a software suite designed to deliver content and means of representation to client applications.
Clients can be web applications, browsers, or mobile applications.
A web server is a computer program that stores, processes, and delivers web pages to clients.
A proxy server acts as an intermediary between the user and the website.
Using ready modules from Apostol CRM, you can quickly assemble and launch the server-side of an information system.
This allows you to start the project immediately without spending time on backend development and instead focus efforts on the frontend, be it a web or mobile application.
The ready build will be provided in the form of source code files and documentation for deployment in a Docker environment (docker-compose.yml).