September 4, 20244 minute read

Case Study: Mejuri - Building an eCommerce Data Platform

Mejuri’s nimble business model requires a rock-solid data platform to support the company’s rapid growth.
Fraser Marlow
Name
Fraser Marlow
Handle
@frasermarlow

Since 2015, Mejuri has done fine jewelry differently, making it for more than special occasions. While quality, craftsmanship, and design are at the brand’s core, their ethos goes deeper: to empower self-expression and elevate the everyday. The jewelry is designed in-house, and the company only manufactures more based on consumer demand. This allows Mejuri to offer a fresh line of jewelry at an accessible price point while eliminating wasteful overproduction.

The organization has been very successful and is enjoying rapid growth. However, sustaining such a nimble business model means always having one's finger on the pulse of the organization.

This is easier said than done.

Mejuri is a global brand with over 500 employees. Retail operations include the online store along with 37 brick-and-mortar retail locations across the UK, the USA, Australia and Canada, [https://mejuri.com/stores/hub].

The Mejuri Data Team

Gabriela Henriques, Data Engineering Manager at Mejuri
Gabriela Henriques is Mejuri’s new Data Engineering Manager, having joined in January 2024.

She is accountable for the data platform, working with a team of 6 engineers spanning Data Engineering and Analytics Engineering. The engineering team is mostly based out of Argentina, with the rest in Toronto.

Together, the team oversees the current-state platform, the underlying infrastructure, and DevOps setup, as well as building future platform features and pipelines. Finally, the team builds and maintains all business reports in Looker.

“Mejuri is a very data-driven organization, across all departments. “ says Gabriela, “Our CEO is looking at the data on a daily basis. We use data for everything from revenue and accounting reporting, as well as in marketing, customer behavior, product trends, and user behavior on our website, as well as tracking in-store activity.”

Building a Platform on Dagster

Dagster has been running at Mejuri for over two years now. In total, the team handles 47 pipelines across two Dagster production instances. These ingest and integrate data from both in-house systems and third-party data sources.

Like all eCommerce companies, Mejuri taps into many third-party vendors. Mejuri also has business partners and needs to effectively share data with them. In addition, they have brick-and-mortar stores. All this information needs to be aggregated and analyzed to develop a complete picture of the business.

Data ingestion is done using a mixture of Python scripts and a commercial service (previously Stitch, but transitioning over to Airbyte).

The data management architecture follows a “black-silver-gold” structure on Google BigQuery, with dbt Cloud running the transformations and Dagster orchestrating all the pipelines. Looker is then the main BI tool.

“Dagster gives us great visibility across all the pipelines that we have running. We have alerting set up so we know the health of all the pipelines. It also makes it very easy for people on my team to spin up new ones.” says Gabriela

Gabriela inherited Mejuri’s Dagster implementation, with the technology being new to her as she had previously only worked on Airflow (via Google Composer, then self-hosted). The transition was a smooth and positive one nevertheless.

“Dagster offers a lot more features than Airflow, and you can set up pipelines in a cleaner fashion than with Airflow. That’s the biggest difference I noticed switching between the two.”

A Mejuri store.

Data Engineering and Analytics Engineering: Finding the Right Balance of Autonomy and Collaboration

At Mejuri, as in many data-centric organizations, the Data Engineers on the team focus on building and maintaining the pipelines, while the Analytics Engineers focus on the transformations and reporting.

Finding the right balance of autonomy and collaboration between these functions can be tricky, but here too, Dagster can help.

Handing off data transformation from an analytics engineer to a data engineer is easier for Mejuri with the Dagster-dbt integration. Analytics engineers can use the dbt Cloud IDE, and the data engineers then productionize the dbt jobs in Dagster.

Mejuri’s next steps include empowering the Analytics Engineers to operationalize these models without having to rely on the Data Engineers. The Analytics Engineers are able to write in Python, and Dagster gives them more autonomy.

Running on Dagster+

The Mejuri team runs two environments on Dagster+, offloading any infrastructure concerns to Dagster Labs. This choice frees the team up to do more rapid development while reducing time spent on updates. It also unlocks a number of new features.

The team is ramping up ML activities, with models getting integrated into pipelines. When adopting more ML processes, Dagster will help understand the resource demands of the current pipelines and adjust the infrastructure to match the new requirements.

Looking to the Future

With a solid foundation for their data platform, the Mejuri team is now looking to the future. They have just completed a major shift to run on Shopify. With that project mostly completed, Gabriela sees many opportunities for further improvements.

“We are now looking at how we make it easier for Analytics Engineers to work fully independently form the Data Engineers, putting their own models into product autonomously. We are also looking at how to improve our CI/CD process to make the deployment of new pipelines even smoother.”

With the adoption of more ML-focused pipelines and the rich insights that Dagster+ provides, the Mejuri data team continues to provide critical insights to support the organization’s continued growth.


The Dagster Labs logo

We're always happy to hear your feedback, so please reach out to us! If you have any questions, ask them in the Dagster community Slack (join here!) or start a Github discussion. If you run into any bugs, let us know with a Github issue. And if you're interested in working with us, check out our open roles!

Follow us:


Read more filed under
Blog post category for Case Study. Case Study