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
Prod / Stage
Devstack
Edge, if appropriate
Open edX, if appropriate

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)
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)