WhiteFlo is a set of Symfony 5 modules that are reusable across projects.
Currently, there are more than 20 modules that implement the functionality of the product at various levels:
The connection between modules are organized in such a way that allow connect the necessary parts of the functionality at the requested level, and implement the rest by yourself. For example, connect only the business logic of cryptoprocessing and API, then integrate it into your product.
You can configure each module and redefine its functionality in various ways: extend the model, redefine any service, create your own command, request, and event handlers.
High-level code and business logic are covered by tests.
Most commands and events can be processed asynchronously. For a highly loaded distributed system, you can use any message broker that is supported by Symfony Messenger, such as Amazon SQS or RabbitMQ. The standard delivery usually uses a queue in the SQL, which simplifies the architecture and reduces costs.
To launch a specific project, the necessary modules are included in a project, usually built as a web application with a monolithic architecture, that is, single Symfony project for the public part of the site, the client part, the admin panel and the REST API.
Creating a new project consists of the following steps:
We deploy projects on AWS. We create a site using Terraform. On Gitlab CI, the project is assembled in docker images, automatic testing is carried out. The required version is deployed to the site on command, blue / green deployment is applied.
A detailed description of business processes and use cases of the product can be found on the product website: whiteflo.com