-
12
-
Jan 2018 - Jul 2018
-
Hexagonal, DDD, PHP, Symfony, RabbitMQ, Redis, Encore
Visymo delivers high-performant and robust search platforms, which are used by more
than 290 million users monthly.
The objective of this assignment was to rebuild an existing, internal portal for
data processing and visualization.
Furthermore, the existing integration with Google AdWords/AdSense, Microsoft Bing and
Yahoo APIs must have been improved and optimized.
In order to deliver the most flexible and long-lasting solution, Hexagonal
architecture with Domain Driven Design was chosen. PHP 7.2 (strict
typing) with Symfony 3.4 (auto-wiring and auto-configuration) was used in
conjunction with
Doctrine ORM and Doctrine Migrations. Millions of data have to
be processed every day, thus a combination of RabbitMQ message queue, Redis key-value
data store and Supervisor became a center of heavy and time-consuming processes.
On the front side, a simple Search box was powered by a robust farm of Solr
servers, Cassandra database and Redis, managing massive amounts of data.
Our consultant, Adam, had the role of Senior Symfony Developer and joined the Agile Team of 11 Developers. The pace of
development was fast, but tools like Jenkins, JIRA, Bitbucket, and Sentry were at their disposal, making this big endeavor possible.
Adam was responsible for improving their Domain Driven Design and Hexagonal architecture, focusing on Command Buses and Consumer/Producer implementations.
Furthermore, he introduced Codeception for writing functional and acceptance tests and paved the way for modern Javascript stack (such as ES6, ESNext), by setting up Webpack/Encore and sunsetting Assetic.
Besides, he was assisting his co-workers during the migration from MySQL 5.6 to MariaDB 10.2, improving their Ansible provisioning scripts, Vagrant configuration as well as corresponding Doctrine ORM/DBAL libraries.