How DeFacto migrated to an event-driven architecture
DeFacto is a fashion retail company that operates across 33 countries with over 500 stores. The company develops all the applications for its core retail business in-house, encompassing an extensive range of Enterprise Resource Planning modules including Point of Sales, Store Operations, CRM, B2B, HR, Finance, integrations, and many more.
DeFacto is a fashion retail company operating across 33 countries with over 500 stores. The company develops all applications for its core retail business in-house, including extensive Enterprise Resource Planning (ERP) modules such as Point of Sales (POS), Store Operations, CRM, B2B, HR, and Finance.
Challenge
DeFacto's legacy monolithic application framework became increasingly difficult to maintain due to millions of lines of code, growing developer teams across multiple departments, large numbers of application modules and servers, high volume of change and deployment requests, and escalating infrastructure scaling costs.
Solution
To address these challenges, DeFacto adopted an event-driven architecture using microservices and asynchronous methodologies. The company developed a platform called DFApi featuring new technology strategies and modern developer operations approaches.
DeFacto investigated the Dapr project and found that Dapr's seamless application layer integration through APIs perfectly matched their requirements. Using the Dapr .NET SDK, they encapsulated functionality needed for event-driven architecture.
For asynchronous communication, DeFacto utilized Dapr's publish & subscribe API building block, decoupling backends including NATS, RabbitMQ, and Kafka. This approach enabled technology-independent integration while maintaining flexibility and scalability.
Impact
Adopting Dapr provided DeFacto with discovery and invocation of target APIs for synchronous and asynchronous communication, smooth transitions between environment configurations, isolated application API calls within the same Kubernetes namespace, and seamless publishing and subscribing to messaging events.
"With Dapr, it was much easier to transition from our monolithic applications to a distributed environment. Especially for developers. The adaptation process took much less time with Dapr." — Tugay Ersoy, Software Architect at DeFacto
Red Hat OpenShift Clusters and Namespacing with Dapr
DeFacto uses two Red Hat OpenShift clusters—one for production and one for pre-production. The pre-production cluster hosts multiple environments (Dev, Test, UAT) using Kubernetes namespaces for organization. When one service depends on another, Dapr automatically routes requests to the service within the same namespace.
Developer Experience
Dapr simplified asynchronous business logic by standardizing event consumption and publishing, allowing developers to create methods and bind them to desired message topics, and eliminating the need to learn specific stream connection methods or protocols.
Telemetry and Observability
Dapr provides built-in distributed telemetry collection using Open Telemetry. DeFacto configured Elasticsearch as Zipkin's backend and seamlessly configured Dapr to send telemetry data, enabling focus on developing features like Grafana dashboards.
"Dapr has made it extremely easy to adopt new approaches. In a short time we created a new platform and started producing distributed asynchronous applications. Dapr helped us reach our goal very fast in a well-architected way." — Sedat Eyüboğlu, Software Architecture Consultant at DeFacto & CTO at Codelytic
At the time of writing, DeFacto had over 300 deployments running in its OpenShift production cluster.
Read the full case study on the CNCF website.
Ready to get started?
See how Diagrid can help you run Dapr in production with confidence.


