/
MFE Definition of Done

MFE Definition of Done

Superseded by: Requirements for an MFE

Infrastructure & Framework

Also, see How to: Create and Deploy a new Microfrontend inside edXarchived.

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
Prod / Stage
Devstack
Edge, if appropriate
Open edX, if appropriate
Code maintenance
Renovate
Auto-merging of dev dependency minor and patch versions
Auto-merging of minor and patch versions of edX dependencies

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 attribute

Architecture concerns

Manifesto
APIs
Client usability: discoverable and self-serve
Docs: Swagger sustainable and better integrated
Limits: Pagination, Rate Limiting
Compliance with MFE-related OEPs

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)
User Acceptance Testing (UX)
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)

Related content