hamed-shirbandi / TaskoMask

Task management system based on .NET 8 with Microservices, DDD, CQRS, Event Sourcing and Testing Concepts
http://taskomask.ir
MIT License
680 stars 116 forks source link

Combine results from async methods and return synchronously for Aggregator features #127

Open hamed-shirbandi opened 1 year ago

jaygastby1991 commented 1 year ago

Hi, I am a newbie and I would like to work on this task. I am learning clean architecture so I would like to compliment my knowledge with this task. Please advise me if this is the right choice given my expertise.

hamed-shirbandi commented 1 year ago

Hi @jaygastby1991, It would be great to have you as a contributor. If you have any question about clean architecture, I'm happy to answer, but there is no specific task related to clean architecture. I think reading the documentation and looking at microservices architecture is a good way to know more about it. If you still want to contribute, then this issue is a good choice. Just let me know so I can explain it more

jaygastby1991 commented 1 year ago

Hi again @hamed-shirbandi , I really want to contribute to the project. I would appreciate if I can have more info about the task.

hamed-shirbandi commented 1 year ago

Hi @jaygastby1991, sorry to respond late. I am planing to start developing this repository again, then you always can find me online :) This task refers to ApiGatewaysAggregatorFeatures. There you can find some features that they are aggregating some data from different microservices (like this one) The problem is, aggregator is not able to get the data from microservices asynchronously, so the response will be slow and can be a single point of failure. Take a look here, TaskDetailsViewModel needs data from 3 different APIs (card, comment, activity) but as you see, for each API call I used await keyword which means the rest will be waiting. The solution is to call all the APIs but don't wait for their response, so you can call all the APIs at the same time and combine their results when all the requests are responded. If you need more information, just let me know.

jaygastby1991 commented 1 year ago

Hi @hamed-shirbandi, also sorry for my late reply. I am working on the task assigned. I am tackling it with the WhenAll within the Task class. Am I going in the right direction?

hamed-shirbandi commented 1 year ago

Hey @jaygastby1991 Yes, you are doing right, but it is better to open a pull request and push your changes in short commits then I can review your codes and help you better doing it.

jaygastby1991 commented 11 months ago

Hey again. I am having issues running the application. I followed the instructions to start all the infrastructure projects using docker compose, then I tried to start the project using the self-host option. However only the Website (localhost:5009) starts, I can not log in nor see anything else. Kindly ask which projects are essential to start together in order to make TaskoMask work.

hamed-shirbandi commented 10 months ago

Hey Jorge, sorry for the late response. I couldn't work a while. It seems we have a lot of issues with running the app! I will let you know when all issues are resolved. Thanks for bringing this to my attention.

jaygastby1991 commented 10 months ago

Thanks a lot, please, kindly keep me updated so I can start contributing!

hamed-shirbandi commented 10 months ago

Hey Jorge, now you can run TaskoMask on your machine. First, run the following command, then run all services through Visual Studio and they will work.

...\src\7-Docker> docker-compose -f Infrastructure.yml up -d

Also, if you like to contribute, you can check new issues that I have added recently, some of them are easier for you to start with.

I recommend #173. If you needed more info, just add a comment to that issue. Also, I can give you an example if you want.

Good luck!