Skip to content

[Initiative] New Mercur Architecture (Core + Block Registry)ย #693

@gtomaka

Description

@gtomaka

Summary

We are redesigning Mercur from a template-based solution into a modular marketplace platform built on top of the Medusa core.

The current architecture bundles a large amount of marketplace logic directly into the project template. This results in unused code, difficult customization, and slower long-term evolution.

This initiative introduces a clearer separation between core marketplace concepts and optional marketplace functionality.


Motivation

As Mercur grows, the template-based architecture makes it harder to:

  • customize behavior without modifying core logic
  • support different marketplace models from the same codebase
  • evolve the platform without accumulating technical debt

To address these limitations, Mercur needs a smaller, more stable core and a modular extension model.


Scope

This initiative introduces a new architectural model where:

  • Mercur is provided as a small core plugin
  • the core defines abstract marketplace concepts and shared primitives
  • optional marketplace functionality is encapsulated in reusable blocks
  • blocks are discovered, installed, and maintained via registries
  • developers compose marketplaces by adding only the blocks they need
    (e.g. reviews, requests, custom order flows)

Mercur continues to rely on Medusa as the underlying commerce engine.


Impact

  • Developers can build different marketplace types without carrying unused logic
  • Integrators gain clearer extension points and safer customization
  • The platform becomes easier to maintain and evolve long-term

This initiative introduces breaking changes and does not aim to preserve compatibility with existing Mercur versions.


Relationship to the Roadmap

This initiative is tracked on the public Mercur roadmap.

Current status: In Progress


Feedback & Discussion

This issue is intended for high-level architectural discussion and feedback.

Implementation details and task-level work are tracked internally and are intentionally out of scope for this issue.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions