How to implement GitLab Flow branching model for microservices?
We also switched from Git Flow to GitLab Flow several months ago and so far we're very happy with our decision. It works very well with GitLab, it's easy to understand and less error-prone and you don't need additional Git commands (which are quite slow on Windows).

We use Docker Compose to organize our microservices and have a separate project/repository just for the staging and production compose file(s) of our actual application. In the project and CI of each service you can then combine such compose files with a specific one that just tells Docker to use the specific branch of the specific service (and maybe other branch specific settings).

The production compose file contains the production specific settings and tells each service to use a specific tag:

service1:
    image: examples/service1:1.5.4     
    ports: 
        - "8000:8000"
    volumes: 
        - "/data" 
service2:
    image: examples/service2:3.5.2


The staging compose file tells each service to use the image of the master branch:

service1:
    image: examples/service1/master:latest          
service2:
    image: examples/service2/master:latest


Then the compose file for a specific branch of service 1 just looks like that:

service1:
    image: examples/service1/some-branch-name:latest


When you deploy a review environment for the specific branch with all three compose files at once you'll get something like the following:

service1:
    image: examples/service1/some-branch-name:latest
    ports: 
        - "8000:8000"
    volumes: 
        - "/data" 
service2:
    image: examples/service2/master:latest