Skip to content

Commit 00e79c1

Browse files
authored
Add Flutter example to Service vs. Library (#353)
1 parent 2f0e4cb commit 00e79c1

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

patterns/2-structured/service-vs-library.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,23 @@ do not affect their own downstream customers.
4242
Severity levels for the same types of errors may be different across team
4343
boundaries due to different SLA definitions per team/customer relationship.
4444

45+
Teams may have different security or regulatory constraints governing their deployments.
46+
4547
## Solutions
4648

4749
Decouple responsibility for source code from deployment: Both teams work to
4850
identify exactly where there is overlap and synergies.
4951

50-
Only shared source code is kept as part of the InnerSource project with shared
51-
responsibility.
52+
Only shared source code is kept as part of the InnerSource project with shared responsibility. The shared source should be coherent in that it includes all testing code (including integration tests if available) and as much of the CI pipeline as is possible to make contribution validation easier.
5253

5354
Decouple configuration and deployment pipelines from actual business logic.
5455
Establish a second deployment of the service for the second team.
5556

5657
Treat the common base as a library that is used by both teams with shared code
5758
ownership.
5859

60+
Deployment configurations can be included as separate projects in your InnerSource portfolio to allow teams to discuss/collaborate or a new team to copy them.
61+
5962
## Resulting Context
6063

6164
Teams are willing to collaborate, benefitting from sharing the work of
@@ -71,21 +74,25 @@ The likelihood that changes are needed and made in the shared source code
7174
increases, leading to more frequent opportunities to refine, improve and optimise
7275
the implementation.
7376

77+
Encourages incremental operational standardisation in release packaging, telemetry, health/readiness endpoints and so on as the teams realise they can more efficiently maintain this in the shared code if they agree on standard conventions.
78+
7479
## See also
7580

7681
Related to this pattern is the [30 Day Warranty](30-day-warranty.md) pattern that takes a different approach to solving the forces described above.
7782

7883
## Known Instances
7984

80-
Europace AG
85+
* Europace AG
86+
* Flutter Entertainment: A [Flutter InnerSource application](https://innersource.flutter.com/start/setup-ci/) has a shared code "service" repository with cross-team contribution and CI pipeline to build and publish a shared release artefact. Each adopting team has a "deployment config" repository defining their own deployment. This is driven by varying regulatory requirements, service and incident management practices and infrastructure skillsets in different areas of the business.
8187

8288
## Status
8389

8490
* Structured
8591

8692
## Author(s)
8793

88-
Isabel Drost-Fromm
94+
* Isabel Drost-Fromm
95+
* Rob Tuley
8996

9097
## Acknowledgements
9198

0 commit comments

Comments
 (0)