The micro-services architectural style is an approach to develop a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms. Teams can develop, maintain, and deploy each microservice independently. Applications composed of micro-services scale better, as you can scale them separately, whenever it’s necessary which results in high level of availability.  Microservices also reduce the time to market and speed up  CI/CD pipeline but it needs complex infrastructure for CI/CD. This means more agility, too. Besides, isolated services have a better failure tolerance. It’s easier to maintain and debug a lightweight microservice than a complex application, after all.

Product Management Microservice

Defining product characteristics, defining products, and defining product constraints are done by the product management system. The products defined in this system are used in other systems, especially sales. In other words, the sales system has no special knowledge and awareness of the products and their characteristics, and the integrated product management is done by the product management system. In this service, a diverse set of custom fields, especially hybrid and array fields, has been created to define the complex characteristics of complex products. Also, complex and advanced rules for offering products in the sales system are defined and set in the product management system.

Unit of Measures Microservice

To sell any product, especially goods, it is necessary to define units of measurement. Units of measurement have comprehensive logic, concepts and principles that must be defined and managed in a separate service. UOMs may be basic or defined as derived units by the user. In this case, conversion management of different units is important, which is managed by this service. In addition to units of measurement, currencies are also widely used in various systems, especially sales. Defining currency, internal and external sources to define the conversion rate of currencies and automatically receiving conversion rates from external sources are some of the features of this service.

Geographic Locations Management Microservice

The service defines and maintains a variety of geographical locations, administrative divisions divisions for each country, geographica groupings, physical and virtual addresses, physical address templates for different countries, and physical facilities. The physical facilities used on the platform, including airports, hotels, service centers, etc., are managed in this service.

Party Management Microservice

All kinds of individual and legal persons are managed in this system. Persons and their identity information, relations between persons, addresses related to persons and physical facilities related to persons managed in this service. The complexity and diversity of legal entities can be managed in this service. Relations between different parties as individual and legal entities are maintained in this service. Each person may be assigned different roles. All the roles of people in different systems such as sales or purchasing are registered in this service.

Identity and Access Microservice

This service manage user privileges to other services features. It is also possible to create user groups to grant or deny accesses of similar users once. This service was developed based on OpenID Connect.