We are a startup and are beginning the process of porting over our entire web app to a decoupled concept where an Angular web UI talks to a collection of microservices. It's your standard modern approach. What is not standard about our strategy is that our CTO has strongly suggested (basically insisted) that we include the code for the Angular front-end in the same monorepo along with all of the microservices that are written in PHP/Lumen. The supposed advantage being that changes to common protocols (like JSON structure, etc) will be easier to deal with if everything is in the same repo. While I'm totally onboard for keeping all the microservices in the same monorepo I am really hesitant about throwing the Angular code in there as well mostly because I can't seem to find any best practices or precedent for doing this. I have searched and searched and no one seems to have an experience with this kind of setup that they are willing to share. Is there a recommended approach for this specific sort of setup?
Web UI code and microservices in the same monorepo?
533 Views Asked by lola_the_coding_girl At
1
There are 1 best solutions below
Related Questions in DOCKER
- sqlplus myusername/mypassword@ORCL not working with Oracle on Docker
- Golang == Error: OCI runtime create failed: unable to start container process: exec: "./bin": stat ./bin: no such file or directory: unknown
- Only the first SQL script gets executed inside Docker Postgres container
- Retrieve the Dockerfile configuration from the Kubernetes and also change container Java parameter?
- Polars with Rust: Out of Memory Error when Processing Large Dataset in Docker Using Streaming
- Compiling eBPF program in Docker fails due to missing '__u64' type
- AttributeError: module 'numba' has no attribute 'generated_jit'
- Phoenix in a docker dev environment - generated code can't be saved from VSCode
- Docker on Multipass VMs: Connecting worker nodes to swarm results in rcp error
- Facing error in creating image of my react+vite project . Dockerfile error
- NextJS Docker build fails: fetch failed ECONNREFUSED
- Docker container unable to make HTTPS requests to external API
- Failed to connect to your instance after deploying mern app on aws ec2 instance when i try to access frontend
- Connecting to Postgres running in a Docker container using psql
- Can't connect to local postgresql server from my docker container
Related Questions in REPOSITORY
- Cant connect to any github repository from my netbeans 20
- Save Interface in DB golang
- Files lost from Github repository
- Single Github repository for two local repos for a fullstack project
- Git Webhook to trigger SageMaker Pipeline
- Need more parameters in subclass overridden method
- Build code in new cpp file in a cloned repository
- Troubleshooting Azure DevOps External Repository Cloning Authentication Issue
- How to have helm / helmfile install the most recent chart version from a repo?
- Can't able to merge branch to main branch in github
- I was a contributor on a Github repository that does not exist anymore. I still have those files on my computer. How do I upload the files to Github?
- Spring can't find the specified Bean
- Create SFDX project vs code from repository?
- Magnolia Git Repo Documentation Access
- Conditionnal repositories in Golang
Related Questions in MICROSERVICES
- HTTP Requests from SSL Secured(HTTPS) Domain Failing
- Separation of Students and Users in NestJS Microservice architecture
- How to choose port number for various microservices? whatever port number I use is already used-blocked or I'm not able to use them
- Handling feign exception in Spring boot using RestControllerAdvice
- Javers in microservice architecture
- Kafka integration between two micro service which can respond back to the same function initiated the request
- HTTP 401 unauthorized ASP.NET Core Web API microservices
- Minikube tunnel - Ingress not working on windows
- importing class in microservice 1 from another microservice 2
- Eureka Discovery client is not register under API-GATEWAY\host.docker.internal
- Unable to PUT JSON using ADF Dataflow, the error is "the JSON value could not be converted to System.Collections.Generic.List"
- Using Django as API gateway & authorizations service in Microservice
- How to fix HTTPS on express-gateway
- Websocket duplicate on headers
- migrate from django migrations to fastapi alembic
Related Questions in WEB-APPLICATION-DESIGN
- How does E-commerce platforms with microservices architecture use Redis for Caching?
- Will a new instance of Singleton scoped object in a WebApplicationContext be created if the application is closed and started again in Spring MVC
- Differentiating MVC layers in Codeigniter4 (Libraries vs Helper vs Models)
- Python Flask web application hanging when called multiple times
- Design Query - Pull data from a third party data source and show it on UI
- Advice on separating parts of java web application
- how to move an inner html style tag to css correctly?
- How/Where I can learn the structure of a real world Java web application with sample code and explanation
- How to load properties into environment from zookeeper before initialising beans in web application
- How to Build AutoComplete feature?
- Can I put all Application Services to the front end in DDD?
- Web UI code and microservices in the same monorepo?
- Designing custom workflow in JAVA and Spring
- Web Application with Background Job That Loops Forever
- Is it possible to open a WebSocket to client localhost?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
If you look into "12 factor app with micro-services" you would get details about best practices.
If you have your code in a single repo, with CI/CD tools a single checkin any where will deploy all services for backend system and UI on frontend at the same time, this may be ok at first but it will increase deployment times as you add more services, you may have to write some custom code to detect changes specific to UI/Services if you want to avoid this behavior, but you get the advantage of code sharing.
You can code share even with multiple repositories if you keep your JSON structure in a common repository and share it on both client and server side.
This all gets hard to manage and deploy once you add more types of clients for example, iOS/Android and as each team wants to own their own deploy and release cycles.
At the same time you can start with single repository for simplicity, once you start seeing any of these issues, you can move them out into individual repositories.