1 frontend to load balance against 2 backends

I have 2 separate swarm services, they are 2 copies of the same code but they don't work as replicas, long story, the gossip code it uses to communicate with each other doesn't support it. That said, I have

service1:
  image: ...
  deploy:
    labels:
      - traefik.port=9000
      - traefik.frontend.rule=Host:myapp.mydomain.com

then a duplicate service

service2:
  image: ...
  deploy:
    labels:
      - traefik.port=9000
      - traefik.frontend.rule=Host:myapp.mydomain.com

both of these services use the same port, and we use placement constraints to keep them off the same node. Traefik shows 2 distinct front ends and 2 distinct back ends. The goal is to get myapp.mydomain.com to balance load between service1 and service2, and utilize sticky sessions. What is the proper way to configure this?