3
13 Comments

Can you make a project built with micro-services architecture open-source?

Usually the open source project are either monoliths or composed of very few components.

Do you think a project with micro-service architecture can become open-source?

on April 1, 2022
  1. 3

    Are you looking for a TS monorepo divided into packages and microservices or something else?

    1. 1

      Majority of the services are written in Go, and three of them are in Node.
      It's not a monorepo at the moment but if it helps we can make it a mono repo, not sure yet though.

      1. 1

        Sorry, don’t really do much Go development

  2. 3

    Yes you can. But the installation documentation will be too long. Resources / servers required will be more. So people hesitate to try.

    Solution:
    Build installation bot that sets up everything on a single server to start with. Once people know that the software is a good fit, let them invest time to move micro service into different servers.

    1. 2

      That's a great idea, or maybe I can provide machine images (e.g. AMI for AWS) that have the entire services running.

      What about the contributors? Is it a bad thing or a good thing?

      1. 2

        I am sorry. I didn't follow your question completely.

        Open source project contributors can do contribution to individual mirco service on GitHub. In GitHub they are all individual projects.

        1. 3

          You're right, each service is in a separate git repository, just there are some services (e.g. authorization) that are used by many services.

          Maybe I can put the instructions in the repository/service which most of the services rely on and it becomes easier to work on each service individually.

          1. 3

            Yes. You should maintain some amount of documentation for each service.

    2. 1

      There is another way to reduce installation complexity: containerization.
      So Docker or Kubernetes.

      For Docker installation, you could provide docker-compose.yaml.
      For Kubernetes, it's best to create your own helm chart.

      Those are the neatest ways to one-click install complex multi-services OSS.

  3. 2

    I think it's entirely possible. Lots of real world open source projects have microservice architectures.

    One example is kubernetes, which is a huge open source project involving multiple system components. In their case they chose to organize everything in a monorepo.

    1. 1

      Yes, Kubernetes is a complex system indeed. Just this project is not a monorepo.

      I'm thinking about a repository which has all the instructions about how to compose the entire project and each service can be in a separate repository.