Skip to content

Virtual marketplace for service, goods, favor and many more!

License

Notifications You must be signed in to change notification settings

deanarchy/relace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Relace

🔥 🔥 Virtual marketplace for service, goods, favor and many more! 🔥 🔥
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Live Demo
  3. Contributing
  4. License
  5. Contact
  6. Acknowledgements
  7. Note

About The Project

Hello world 👋 Relace is a virtual marketplace where user can exchange... almost ANYTHING! 🎉. From service, goods, favor, trivial thing, significant thing all you can think of!. This project is aimed to solving a real world problem where user don't know where to sell/buy the things that they need (or want or whims 😆). In Relace, there are only two: Customer and Provider. Provider are the one who.. err you know, provides things and customer, it goes without saying are the one who buys things. Any user registered to Relace can assume both roles.

Nerd Zone

🤓 🤓

The Relace system architecture is built on the microservice architecture with its common patterns. Although its unit is still comprised of coarse-grained services, it has improved the scalability, agility, and reliability of the system while overcoming the shortcomings of the monolithic architecture. As the system grows, it may make sense to further break down the services.

The event-driven microservices paradigm is used in the communication pattern to enable asynchronicity and loose coupling between services. To accomplish this basic pub/sub messaging is needed. AMQP (RabbitMQ) w/ topic exchange type is chosen in this project.

Every service in the system is written on Typescript - Express.js with each using MongoDB database. All service (excluding display service) serves as a representation of a domain that typically exists in an e-commerce/marketplace business. Only display service exists as a CQRS and BFF. Due to the infrastructure limitation, new functionalities are to be expected in the future.

When it comes to infrastructure, Docker is used to containerize each service. Each service is designed to run in a Kubernetes cluster to make scaling, replicating, and orchestration easier. Ingress NGINX is utilized as an API gateway for the outside world to communicate with the Kubernetes cluster internals.

🤓 🤓

Built With

Live Demo

relace.dev

Due to a VERY demanding requirement of resources this project has (it's a budget issue actually 😆), deployed app aren't available for the time being.

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Dean Ramadhan - rmdhndean@gmail.com

Project Link: https://github.com/deanarchy/relace

Acknowledgements

Note

This project is a concrete implementation of my studies into software architecture (and software development in general) while attempting to solve real-world challenges. I acknowledges that many aspects of this project are far from perfect and might be improved further. Futhermore, each service (+ database instance for each service + rabbitmq) in the microservice is deployed independently of the others by definition. While this allows for scalability, agility, resilience, and other benefits, it requires a huge amount of resources to run the entire system. My development environment (minikube w/ gaming PC) aren't able to run the project fully thus only able to test it using unit tests (per service) and integrated tests (per significant features). And, due to budget constraints 😆, the project will not be able to be launched into a cloud cluster anytime soon.

About

Virtual marketplace for service, goods, favor and many more!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published