The problem, the need and the business opportunity
The 11pets: Shop brings the e-shop solution that the industry needs. It combines the automations of ecommerce together with the personalized attention and guided pet-care maintaining the personal connection between the pet family and the pet-specialty channel of its choice. 11pets: Shop will allow retailers to continue operating with normality even in periods of restricted mobility mitigating the effects of any future crisis.
This project regards the development of 11pets: Connect which enables veterinary clinics to establish structured communication and collaborate with the pet families by taking advantage of modern web and smartphone technology. Clinics will save time, improve their customer service, efficiency, and customer loyalty, comply with the data protection requirements and increase their income. At the same time, this collaboration will lead to a significant improvement in the level of pet-care.
Pet care is not a single-person task anymore, it has evolved to a multi-person/multi-disciplinary activity. Specialization is becoming mainstream. Veterinary practices have experts in orthopedics, cardiology, ophthalmology, surgery etc., pet shops have animal scientists and owners specializing in nutrition, aquatics, birds, reptiles etc., groomers specializing in grooming and skin care and so on.
The pet specialty channel plays a key role in the care of a pet. The personnel of these establishments typically receive extended training related to the products they sell. They need to know the adequacy and proper usage of every product; not all foods, toys or beds are appropriate and safe for all dogs, cats, fish, birds, rodents and reptiles.
During the COVID pandemic, the connection between the families with pets and the pet specialty channel was broken due to the mobility restrictions. This, not only had a significant negative economic effect on the invoicing of these businesses but also on the pet families that could not access the advice and information the needed. The commercial loyalty that was being developed between the customers and the retailers (e.g. points, loyalty cards, etc. …), was also broken with negative consequences for both. The possibility of permanent lose for market share to e-commerce solutions, is a wake-up call for the specialty channel which needs to adapt to fast.
The main characteristics of the project
Below we summarize the main requirements we received from our potential clients.
Key features
We identified the following key features that are important for pet shop owners who want to operate online.
The challenges and our solutions
In this section we are going to present some of the challenges we had and the solutions we use to face them.
System Architecture
The 11pets platform is a live system with several products in the market. One of our requirements was to keep the 11pets: Shop modules as decoupled as possible from the rest of the system, while exposing points of integration.
The existing users of 11pets: Pet Care will be the customers of the shops in 11pets: Shop, which gives us the opportunity to allow the customer to provide information to the retailer without the need to manually insert data in forms. An example is that after a purchase, the customer could disclose which pet a product is for. This information is available to the system and can retrieve it by using a JWT token.
Another integration point is to send automatic reminders to customers for top-ups. 11pets already has client-communication modules that allows us to send push notifications to users.
To achieve this high degree of decoupling we use an event bus to allow the various microservices to the exchange of events. An event would trigger an action in a consuming microservice to perform some work.
Each microservice exposes some contracts that describe the integration events they emit. Other microservices can subscribe and consume those events to trigger actions or update their state. For example, when an order is submitted an OrderSubmitted event is raised and causes an email and a push notification to be send to the customer. The email and the push notification functionalities are a concern for the Notifications microservice.
The Public Catalog microservice stores data into an Elasticsearch cluster. Using Elasticsearch, we can enable powerful queries and geolocation significant search, that is only show products or stores that are in certain proximity to the customer. To achieve data synchronization between the main database and Elasticsearch, the Catalog microservice emits events on state changes, e.g. ProductPublished, ProductModified, CampaignStarted. The Public catalog microservice consumes those events and updates the information in Elasticsearch.
Decoupling the shop administration database schema from the search schema allowed us to significantly improve data representation on the administration part and to have amazing search performance for the public catalog.
Multi-tenant User Permissions
Role-Based Access Control (RBAC) in multi-tenant environments where a tenant can have multiple users with different roles is not a sufficient solution for us, since we require to Service Level Agreements (SLA) to control the features that are permitted by a user as well as finer control over actions because we want to allow users to create additional roles on a per tenant basis, thus limiting the functionality they expose to their employees based on their business needs.
Our research on the subject allowed us to design an efficient mechanism to manage the permissions of the system, which is scalable and performant. We share our solution in the Multitenant User Permissions white paper and open source library.
Data Management for Knowledge Extraction
For knowledge and intelligence extraction it is necessary to guarantee the consistency of the data, that is, all references to each entity should be unique in the whole system. Simply stated, all actors should see the same view each entity respectless of their role. For example, a veterinarian, groomer, of pet shop, should see the same data of the pet; when one actor modifies the data of a pet, all other actors should see the updated information.
We discuss our findings and methodology in Data Management for Knowledge Extraction white paper.
Acknowledgements
The Project INNOVATE-COVID/0420/0018 is co-funded by the European Union and the Republic of Cyprus through the Research and Innovation Foundation.