Fashion house Marc Cain has been producing and selling designer goods in Germany and around the world since 1973. In the interests of quality assurance, the company prefers to produce its merchandise in Germany, and it has hitherto used a standard solution which includes purchasing, raw materials storage, and production to model its production processes technologically. As the company has grown, however, processes have been added for which the previous system was not designed and for which temporary solutions had to be found. Marc Cain partnered with inovex to begin streamlining this organic system and to future-proof it over further iterations.
As the new solution had to be ready for use as soon as possible, Marc Cain decided to update the individual sub-systems sequentially. The fashion house worked with inovex to develop a new system which interfaces with the legacy system but which also enables a complete rollback to be performed if necessary. In order to provide efficient, effective project support, inovex supplied Marc Cain with a team of developers and a UI expert, as well as an inovex Scrum Master to simplify the project start-up process and provide initial methodological support. The inovex–Marc Cain collaboration and the resulting transfer of knowledge during the project have empowered Marc Cain’s employees to continue the project independently in the future. In order to understand Marc Cain’s requirements and adapt the new system to the company’s processes, inovex held multiple workshops at the start of the project.
These were designed to define the employees’ needs and to determine which company processes should be modelled in the system.
Greenfield project with legacy sections
Integrating the new infrastructure into Marc Cain's existing legacy system posed a particular challenge. While the raw materials warehouse staff are now working in the new system – essentially a greenfield project that has been developed from the ground up – their colleagues in the purchasing department are, for the time being, continuing to use the old system. It was, nevertheless, important for the departments to continue to communicate with each other and to exchange data through their systems, as well as for a consistent data delivery rate to be maintained.
To ensure this, the joint Marc Cain/inovex development team have designed a solution that seamlessly integrates both systems. This involved not only requesting new interfaces from the provider of the legacy system, but also having inovex create new interfaces in order to link the two systems and to connect the new technologies with the legacy components.
Asynchronous data exchange
Linking the two systems also changed the entire data flow. Data from the old purchasing system is now transferred to the newly developed warehouse logistics system and then routed back into the legacy system to be used in production. Data changes, such as changes in inventory, must therefore be traceable and accessible throughout Marc Cain’s entire production chain.
In order to avoid data loss, Marc Cain and inovex use asynchronous messaging via a message bus. If issues in the data transfer process arise or data is not accepted by the old system, asynchronous messaging serves as a fallback solution, enabling information to be resent and preventing its loss.
Practical event sourcing enables full transparency
Another special feature of the project is the practical use of event sourcing for managing data. This ensures that historical transaction data remains available. In the past, for example, stock changes in the system simply overwrote the previous inventory total. Using event sourcing means that all transactions are stored and offset against each other – similarly to bank transactions – in order to calculate the current stock levels. The warehouse logistics transaction log (audit log) is thus constantly being added to, making it possible to verify at any time where goods have been stored or how much money has been routed where. Marc Cain has thus created a completely transparent merchandise flow for its employees.
Event sourcing also enables new features to be better integrated into the system in future. The entire data history is already in place at rollout, eliminating the need for databases to be created from the ground up when the system goes live. The new persistence concept also, however, facilitates use cases which go beyond warehouse logistics. The data collected could also be used to simplify audits, thus helping to improve processes effectively.
In order to meet all the technological requirements, Marc Cain and inovex based this full-stack project on a microservices infrastructure. Part of the system runs on-premises in the Kubernetes cluster, from where it uploads data to the second part of the system in the cloud. The backend was written in C# and .Net Core, while Angular was used for the frontend in order to provide an intuitive user interface for both the browser and the warehouse workers’ handheld scanners.
The Azure Service Bus, Kubernetes, and Docker were used for the communication components of the message broker. The interfaces to the old system were partly implemented using OpenAPI interface generation. The new system’s interfaces were also implemented using OpenAPI interface generation, while technical integration with the old system was implemented via the SOAP adapter.
By successfully migrating Marc Cain’s warehouse logistics to a new system, inovex has helped the fashion designer to model its business processes in a modern, transparent way, while ensuring the continued operation of the legacy system in other areas of the company.
During the project period, both methodological and technical knowledge was transferred from the project provider to the fashion house. inovex employees were able to expand Marc Cain’s backend expertise, and providing a Scrum Master also improved the team’s familiarity with agile working methods. As a result, the Marc Cain team is now in a position to continue its upcoming IT projects independently.