MFE Definition of Done
Infrastructure & Framework
Also, see https://openedx.atlassian.net/wiki/spaces/FEDX/pages/909738013.
Paragon / "Design System"
Reusable components upstreamed to Paragon
Uses frontend runways for common functionality (free with frontend-template-application cookie cutter)
frontend-platform (authentication, analytics, i18n, logging)
frontend-build (webpack config, babel, eslint, jest)
Deployment
Observability & Analytics
Observability
Error Logging; Alerting & Monitoring
Analytics
Work with Data Eng to understand how changes in URLs (retiring HTML rendering endpoints, usage of new/existing APIs) may affect analytics data flow.
Segment integration → Snowflake (data warehouse)
Segment integration → Tracking logs
[Optional] Hotjar
Ensure that PII is suppressed with
data-hj-suppress
attributeArchitecture concerns
Manifesto
SOLID Principles: Single Responsibility & Extensions
Boundaries: Clear Bounded Contexts
Asynchronous Client-side Integrations
ADRs: Decision Records
APIs
Client usability: discoverable and self-serve
Docs: Swagger sustainable and better integrated
Limits: Pagination, Rate Limiting
Compliance with MFE-related OEPs
OEP-48 Brand Customization (pending)
OEP-23 Style Customization (outdated)
OEP-11 MFE Tech standards (outdated)
Code Linting
Code Coverage
OEP-16 Bootstrap (outdated)
OEP-31 Internationalization (pending)
UX and Accessibility
Accessibility checklist
Components adhere to design system best practices
Testing
a11y (Today, this is done manually)
Performance (compare new and old using Speedcurve)
Multi-device support (tested using Browserstack)
Unit tests (see OEP-11 for tech choice)
[Optional] Acceptance tests (Cypress is being assessed as a technology)
[Optional] Consumer-based contract tests (looking for a pilot drive of this pattern)