Marketplace


The Intelexity team has developed a marketplace platform from concept to market launch. A marketplace is an online platform where numerous sellers offer their products or services, and buyers can search, compare, and choose the most suitable offers.

Our team of engineers initially focused on creating a solid foundation for handling a large flow of buyers and sellers. Today, the marketplace we have implemented offers over 3 million items from more than 6,000 sellers and is visited by over 200,000 unique users daily.

More about some of the implemented features:


For the client's team:

  • A platform with features for placing orders, payment, and delivery of goods.
  • A clear and flexible interface.
  • The ability to track the actions of suppliers and buyers in real-time.
  • Analytics and control of goods logistics.
  • Advertising integration capabilities, promotion, and collection of statistics.
  • Verification of all platform users for compliance with requirements and reliability.

For suppliers:

  • A module for tracking inventory, sales, and statistics.
  • Opportunities for promotion and advertising.
  • A complete tracking system for goods from warehouse entry to the end user.
  • Accounting module, transfers, and withdrawal of funds.

For buyers:

  • A system for accessing all goods regardless of geolocation.
  • Personal account with a purchase archive, statistics, and a bonus system.
  • The ability to track purchases, arrange returns or exchanges.
  • Payment modules with cash, credit funds, installment plans.

Development:

As part of the Marketplace project, our team of engineers developed an architecture that fully meets the demands of high load and high availability. To ensure business operations, we used more than 20 microservices interconnected by the RabbitMQ message queue. This made complex and time-consuming computations virtually unnoticeable to the end-user. Various databases were responsible for data storage in the services, including classic SQL PostgreSQL, as well as more specialized NoSQL (Cassandra), KeyValue (HazleCast), and others.

The Development Team implemented:

  • A system for storing data of users and sellers;
  • A system for storing product offers based on product parameters;
  • A product recommendation system for the end consumer based on filters set by the user;
  • An accounting and management accounting system, integrated with popular electronic document management systems;
  • A delivery cost calculation system, integrated with popular delivery systems;
  • A payment system integrated with popular payment systems and banks;
  • A system that ensures the security of purchases, blocking a portion of funds, verifying balances, and debiting money from the account if the goods are in stock.

QA:

Our team of QA engineers ensured the high quality of the product. Over 5000 cases were described. Both functional and non-functional load testing were performed using Jmeter. A framework for automated testing was also created, which was launched during the build stage. We used TestRail, RestAssured, Selenoid in our work.

DevOps:

As part of the Marketplace project, we built a full CI/CD process for the rapid delivery of changes for more than 20 microservices to production. To build CI/CD for such a complex system, we used Gitlab CI, Helm, Nexus, Chart Museum. We developed build pipelines from scratch for system components with built-in quality checks of the written code and vulnerability checks (SonarQube, Dependency Check).

As part of the Marketplace project, our DevOps engineers built a fail-safe hardware cluster of more than 50 SuperMicro servers, interconnected by Mikrotik, Huawei routers, and switches. For storing a large volume of data, Infortrend, Synology storage systems were used. Various monitoring systems were used to observe the cluster, including Zabbix.

As part of the Marketplace project, our DevOps engineers deployed a Kubernetes cluster to manage the microservice architecture. Integration between K8s and ProxMox was configured for the operation of databases and RabbitMq and Kafka queues. In addition, a backup system based on Synology backup storage technologies was set up.

For the distributed system, the DevOps engineers of our team built a monitoring system based on the ELK stack for monitoring business errors; Zabbix for the hardware part of the cluster, as well as Grafana and Prometheus for monitoring and alerting about failures within the k8s cluster.

Our team configured a business data analysis (BI) system. The analysis system was based on the Hadoop, Hive, Spark, Apache Druid, and Kafka stack.