A system simulation to publish a project that one freelancer can get.
- Create, edit, remove, list a project.
- Start a project as a freelancer.
- Finish a project as a client.
- Possibility to create comments about the project.
- Freelancer skills.
- SignIn e SignUp.
- List users.
- .NET
- Docker (SQL Server and RabbitMQ)
- RabbitMQ (Asynchronous calls to this repository
- Clean Architecture
- Design Patterns
- CQRS
- Asynchronous and Synchronous
In this project, I learned more about RabbitMQ, which was used to make asynchronous calls to the DevFreela.Payments repository at the time of finalization, when sending a finalization request, in the SQL database, the status of the project was changed to
PaymentPending
and after that, it was sent to the file calledPayments
where the DevFreela.Payments repository was listening in the background to this queue, and when receiving it, it executed the necessary code for the approval of a payment, and with that, it published again after success, in another queue calledPaymentApproved
, in which this repository listened to this queue, and upon receiving theProjectId
, it searched the base for this project, and thus changed the project status toCompleted
. So there was synchronous communication between the two services.