We have a service oriented architecture which is available to clients under an āumbrellaā GraphQl API. The underlying services are only exposed through this API. The underlying services are deployed independently by the dev teams and we have about 10 teams.
GraphQL in itself is a very flexible API compared to REST for example which means itās hard to know exactly how clients are using the API. My impression is that itās impossible to get 100% test coverage on it.
We have both internal and external consumers of this umbrella API and the challenge now is to make sure these are working. We have tried a few different approaches but havenāt really found the perfect way to do this, so I would like to know what you guys think is a good general approach to the problem that also scales.
We have tried these approaches but not really found them fit. I wonāt go into details why they havenāt been very successful but two of the major disadvantages have been,
- Does not seem to scale very well.
- Communication between teams is hard so the expectations between them are not in sync.
Approaches tried:
- PACT (does scale, but the GraphQL support is limited)
- Using dashboards for client teams to show their test results
- Including client tests into service teams pipelines
- Creating client tests that can be run on-demand
- Alerting (in time) when something in test environment fails.
Iām starting to think the underlying problem is lack of communication. So;
- How do you communicate these things efficiently between teams? Any tools?
- What information client / service status do you communicate between teams? Alerts, test results, questions, concerns etc?
Looking forward to some insightful comments!