Faceted architecture
Quartz provides modules organized into three tiers to support the Schneider Electric global scale.
Why modules?
Modular architectures have long-proven benefits in the software engineering domain. The most famous example is the open-source ecosystem, made of millions of shared modules that combine to create larger products.
Modular architectures allow an ecosystem of reusable blocks to grow continuously on a large scale thanks to their loose coupling, while keeping it maintainable by multiple teams.
Following those principles, Quartz Open ecosystem provides several modules organized in three tiers. Each module contains the following:
- Design assets
- Development assets
- Documentation
- A team of owners/maintainers
The Core team manages the ecosystem governance, working closely with the owners/maintainers of the other modules.
Three tiers
Our modular approach allows aligning the system architecture with the contribution model:
- The Core tier is the foundation for everything else. Its modules provide the styles, guidelines, components, and patterns that all products must use.
- The Applications and Websites domains build on top of the Core. Their modules provide components and patterns shared by all products of the same nature.
- The Facets build on top of the domains to provide guidelines, patterns, and components tailored for a specialized area.
Benefits
- Maintain system and brand consistency through a tight collaboration between module owners/maintainers.
- Core and Domain teams ensure the foundational assets are built with the highest standards.
- Allow easy and frequent contributions at the Facet level. Facets' primary purpose is to share the best ideas in a place where everyone can look for inspiration and reuse.
- Modules have decoupled release cycles, allowing faster iterations at the Facet level, while the Core/Domain teams have more time to build robust assets used at a large scale.
- Promote sharing and co-creation between contributing teams in an organized way.
For further information about contributing to Quartz, visit the Contributor onboarding page.
Core
The Core level contains universal components, patterns, and guidelines for all supported platforms. It is the foundation all products use, enabling large-scale consistency across the company.
It is owned by the Core team, collecting insights from the Domain teams and the community.
Domains
The Domains (Applications and Websites) are built on top of the Core. These modules are high-level areas of specialization used across multiple products with shared navigation, common components, and patterns. It avoids ambiguity on which foundational patterns, components, and styles to use.
Domain teams (designers and engineers from product teams) maintain their domain foundation libraries and ensure the consistency of their domain scope. They work closely with the Core team to ensure global system consistency.
Facets
The Facets are built on top of the Domains. They contain specialized assets and guidelines for a smaller area. Facets may contribute elements to the larger Domain and Core levels as they mature.
Facet contributors (designers and engineers from product teams) maintain their facet libraries. They work closely with the Domain team to ensure domain-level consistency.