Code Monkey home page Code Monkey logo

Comments (8)

jbogard avatar jbogard commented on June 24, 2024 6

The original organization was around service boundaries, since it was the companion to the eBook on cloud-native microservices architecture, which I was a reviewer for both the code and book:

The top-level folders under src represent groups of deployable systems/apps/packages. "Services" being the individual microservices. In a """real""" (micro)service-oriented architecture, we would never have all these projects in one solution. It's merely for illustration.

I recognize the goals of this repo are quite different than the original, but just a heads up, changing the organization to such a way that implies all the projects should live in a common solution means it's no longer a candidate as a reference for (micro)service architecture. To the point that it might be worth adding a note in the archived repo that this repo is not the intended companion for that eBook anymore.

from eshop.

davidfowl avatar davidfowl commented on June 24, 2024 3

I don’t really like the sub folders do we really need them? What are “modules”?

from eshop.

davidfowl avatar davidfowl commented on June 24, 2024 2

That explains why there was so much duplication before. This project is not optimized from a code structure POV to copy these projects into different repositories. We also are planning to do big updates to the book in the coming months to target the changes made to this repository.

we would never have all these projects in one solution

I'd add some nuance. There might be several solutions in a mono repo (or maybe you would use solution filters). This creeps into the whole Microservices in mono repo vs separate repo discussion (that I would love to avoid).

from eshop.

saptarshidas1809 avatar saptarshidas1809 commented on June 24, 2024

Is this an open issue? Or is it done already?

from eshop.

jimitndiaye avatar jimitndiaye commented on June 24, 2024

This is a matter of personal preference really. I like organising projects into descriptive solution folders but some people dislike have to drill down into the folders or think it might hide certain projects at first glance.

That said as more projects get added, having a single flat list quickly becomes unwieldy IMO.

from eshop.

davidfowl avatar davidfowl commented on June 24, 2024

I agree it's preference, and the way it is right now is the team's preference 😄.

from eshop.

jbogard avatar jbogard commented on June 24, 2024

It's less "mono repo vs multiple repos", but more - in a microservices architecture, you don't directly pull in and debug other services code. The solution structure was there to illustrate the logical and physical boundaries between services.

The original codebase illustrated a lot of patterns that seem superfluous or duplicate, but the goal was quite different - showcasing common patterns in microservices architectures using cloud-native Azure technology.

From a documentation perspective, I'd just create a different book. If you're going to remove a lot of the microservice patterns (clear service boundaries, DDD etc), then it's no longer a microservice reference architecture, and a ton of that eBook goes away. Which is fine. @CESARDELATORRE would be able to talk more about the original goals though since it was his baby :)

I'm not arguing against the simplifications - it makes a ton of sense for showcasing Aspire and not muddying the waters with all the other concepts being illustrated.

from eshop.

sorcerb avatar sorcerb commented on June 24, 2024

In a """real""" (micro)service-oriented architecture, we would never have all these projects in one solution. It's merely for illustration.

Why? If you give an example of a mono repo here, it is better to separate physically different services

I think eShopOnContainers have better structure with folders.
image

from eshop.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.