Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Plans for the project #3

Open
aschrijver opened this issue Aug 16, 2020 · 2 comments
Open

Plans for the project #3

aschrijver opened this issue Aug 16, 2020 · 2 comments

Comments

@aschrijver
Copy link

aschrijver commented Aug 16, 2020

Came here via the videos which I absolutely loved! I am a Go noob, who's looking into building a fediverse app based on GoFed activity library. Prior to that I'd been looking to do that in a NestJS DDD/CQRS-style architecture, using nestjs-cqrs module.

In the video you mention further work on the app, maybe as reference impl and production-ready OAuth2, but I notice that most commits date from the time of the videos. Do you have further plans with this?


Some things I'd like to mention:

  • I'd add some topics to the repo, like 'cqrs', 'ddd', 'event-sourcing', 'eventstore', etc. for findability, as well as a mention of "DDD" and "CQRS" in the project description.
  • These great videos should not be missed. I'd add their links to the README.

Regarding the code:

  • Seemed to me the process manager concept touched really close to that of Sagas in DDD-terminology.
  • The project is a great candidate for breaking out the DDD/CQRS concepts to their own library (like NestJS did) and save other some of that "boring work" you talked about.
  • Project could benefit from an intuitive 'clean architecture' folder structure, especially for larger DDD apps.
  • With your BDD setup you come real close to Cucumber-style testing where your Gherkin feature description is text-only, and read by the code.

Edit: There is a cucumber impl in Go actually I now see: godog

@pdt256
Copy link
Member

pdt256 commented Aug 26, 2020

Thanks @aschrijver for the comments.

A trimmed-down CQRS example can be found here and here. That includes a Go CQRS library for building event sourced applications. My plans are to migrate goauth2 to leverage that library, then release version 1 when the project is ready.

I have added time on my calendar to add some documentation linking to those videos and resources.

@aschrijver
Copy link
Author

aschrijver commented Aug 27, 2020

This is super! I am delighted to hear that.

I have another discussion ongoing with some real fine Go experts (the lead dev of go-fed) about Clean Architecture and project folder structure, that you'll probably find very interesting and on-topic. Here's the issue:

eminetto/clean-architecture-go-v2#3

PS. I actually just mentioned your video. I've been recommending it in many places already :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants