I Developed a Complete Open-Source Medieval-Style Marketplace Using Microservices and React, Designed to Support Millions but Lacking Caching—Focused on Learning JWT and Microservices

Building a Full-Stack Medieval Marketplace with Microservices: A Learning Journey

In my latest project, I embarked on creating an open-source, full-stack marketplace platform inspired by eBay, engineered with microservices architecture. Designed to support millions of users in theory, this platform primarily served as a sandbox for my personal learning objectives, specifically exploring JWT authentication, React development, and the intricacies of microservices design.

Technologies Utilized:

  • Frontend: A React-based interface with client-side rendering, utilizing pure JavaScript and CSS for a streamlined user experience.
  • API Gateway: An ASP.NET Core RESTful API acts as the central request router and data aggregator. While best practices suggest splitting these roles—having distinct gateways for routing and dedicated backend services for data handling—I opted for an integrated approach to simplify development.
  • Microservices: Four separate ASP.NET Core RESTful API microservices, each connected to their own PostgreSQL database instance:
  • AuthApi: Manages user authentication and stores user data.
  • ListingsApi: Handles product listings.
  • CommentsApi: Manages user comments.
  • UserRatingApi: Records user ratings and reviews.

You can review the full source code on GitHub:
https://github.com/szr2001/BuyItPlatform

Project Goals and Future Plans

This platform was developed primarily for fun and educational purposes. I aimed to deepen my understanding of React, microservices architecture, and JWT-based authentication. Notably, I didn’t implement caching mechanisms — though I left room for future integration. Moving forward, I plan to explore containerization and orchestration tools like Docker and Kubernetes, as well as caching solutions such as Redis to enhance performance.

Experience and Insights

While I acknowledge that my current code might be considered beginner to mid-level, I believe it serves as a valuable resource for those interested in learning the fundamentals of microservices architecture and full-stack development.

Despite some unresolved bugs, I consider this project a successful learning milestone, having achieved the objectives I set out with.

Final Thoughts

Programming continues to be an exciting journey—never cease exploring, experimenting, and building!


Leave a Reply

Your email address will not be published. Required fields are marked *