You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ARCHITECTURE.md
+25-21Lines changed: 25 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,25 +15,25 @@ In particular, Standard is a _Horizontal Integration Framework_ which integrates
15
15
16
16
> Glossary:
17
17
>
18
-
> _Vertical Tooling_: does one thing and does it well in a narrow defined scope/vertical
18
+
> _Vertical Tooling_ does one thing and does it well in a narrow scope (i.e "vertical").
19
19
>
20
-
> _Horizontal Tooling_: ovelay tooling that stiches vertical tooling together to a polished whole
20
+
> _Horizontal Tooling_stiches vertical tooling together to a polished whole.
21
21
22
22
In that context, the integration target are the end-to-end automatable sections of the SDLC process for which we offer well-integrated tools and best practices.
23
-
_Efficient_automatable sections of the SDLC are characterized by two things.
23
+
_Efficient_SDLCs are characterized by two things.
24
24
25
-
Firstly, an adequate _lead time_ which is the amount of time it takes to set up an initial version of the software delivery pipeline.
25
+
Firstly, by adequate _lead time_ which is the amount of time it takes to set up an initial version of the software delivery pipeline.
26
26
It needs to be _adequate_ rather than _just fast_, as it takes place in the context of a team and thus encompasses learning and onboarding activities.
27
-
Rather than optimizing for speed, these need optimization for success.
27
+
Rather than for speed, they need optimization for success.
28
28
29
-
Secondly, efficient automatable sections of the SDLC are characterized by short _cycle times_ which is the amount of time it takes for a commit to be shipped to a production environment.
29
+
Secondly, by short _cycle times_ which is the amount of time it takes for a commit to be shipped to a production environment.
30
30
Along this journey, we encounter our scope (more on it below):
31
31
32
32
- aspects of the _contribution_ environment;
33
-
- the packaging pipeline that produces our distributable artifacts;
34
-
-Continuous Building & Integration, Continuous Deployment as well as Continuous Observability and Discovery.
33
+
- the packaging pipeline that produces artifacts;
34
+
-and continous processes integrating the application lifecycle.
35
35
36
-
The goal of Standard is to optimize the critical path along this process to achieve superior _cycle times_ through the powers of Nix and Flakes when compared to any other similar framework that doesn't recognize the intrinsic value of _reproducability_.
36
+
The goal of Standard is to optimize the critical path along this journey to achieve superior _cycle times_ through the powers of Nix and Flakes over frameworks in failure mode of disregard for the intrinsic value of _reproducability_.
37
37
38
38
## Scope
39
39
@@ -45,38 +45,42 @@ The stipulated process regions are:
45
45
-**Packaging Pipeline** which roughly covers _commit-to-distribution_. It is typically set up once and then orchestrated by a CI control loop.
46
46
-**Continuous 'X' within the Application Lifecycle Management** which roughly covers _distribution-to-next-rollout_.
47
47
48
-
> Note:
48
+
> Glossary:
49
49
>
50
-
> We use the term Contribution Environment to mean _Development Environment Plus_.
51
-
> Compared to "development environment", it explicitely encapsulates aspects of contribution and integration in the broader process flow.
52
-
> If you prefer, you can think "Development Environment" for practical purposes.
50
+
> We use the term _Contribution Environment_ to mean _Development Environment Plus_.
51
+
> Compared to _Development Environment_, it explicitly encapsulates aspects of contribution and integration of the broader process flow.
52
+
> If you prefer, you can think _Development Environment_ for practical purposes.
53
+
54
+
While Standard is fundamentally concerned with optimizing across the end-to-end process, we also limit the scope inside this project repository for practical reasons:
53
55
54
-
While Standard is fundamentally concerned with optimizing across the end-to-end process, we also limit the scope inside this project repository for practical reasons.
55
-
Therefor, we opt to delegate the **Contribution Environment** to a trusted project with an appropriate scope in the broader Nix Community, while employing community outreach to try to ensure our optimization targets are met or at least not accidentally sabotaged.
56
-
On the other hand, we opt to delegate **Continuous 'X' within the Application Lifecycle Management** by dovetailing with more appropriate initiatives of adjacent ecosystems, such as for example [OAM](https://OAM.dev), which has developed an interesting model to reflect role boundaries naturally in their code interfaces.
56
+
Therefore, we seek to delegate the **Contribution Environment** to a trusted project with an appropriate scope in the broader Nix Community, while employing community outreach to try to ensure our optimization targets are met or at least not accidentally sabotaged.
57
+
58
+
On the other hand, we seek to delegate **Continuous 'X'** by dovetailing and cultivating outreach with more appropriate initiatives of adjacent ecosystems.
57
59
58
60
## Ideals
59
61
60
62
The project is rooted deeply inside the Nix Ecosystem, but it strives to become a portal to make the powers of a store based reproducible packaging system readily available and palatable to colleagues and friends.
61
63
62
64
-_Use nix only where it is best suited_— a Nix maximalist approach may be an innate condition to some of us, but trying to be a portal we deeply recognize and value other perspectives and don't dismiss them as ignorance.
63
-
-_Disrupt where disruption is necessary_— to our chagrin, the Nix ecosystem is quite a monotheistic silo. Therefore, we don't shy away from deviating from its widely accepted norms and standards when we feel that deviation has a greater chance at furthering the ideas of being a portal.
65
+
-_Disrupt where disruption is necessary_— to our chagrin, the Nix ecosystem is quite a monotheistic silo. Therefore, we don't shy away from deviating from its widely accepted norms and standards when we feel that it furthers our goals.
64
66
-_Look left, right, above and beyond_— our end-to-end perspective commands us to actively seek and reach out to other projects and ecosystems to compose the best possible value chain.
65
67
66
68
## Goals
67
69
68
70
-_Complete_: Standard should make a complete offer for setting up and running the automatbale sections of the SDLC.
69
-
-_Optimized_: Standard should optimize for agent ("make your day-to-day life easier") and principle ("quick time to market"), alike.
71
+
-_Optimized_: Standard should optimize for agent ("make your day-to-day life easier") and principle ("quick time-to-market"), alike.
70
72
-_Integrated_: Standard should provide the best possible integration experience across a well-curated assortment of verticals.
71
73
72
74
## Value Matrix
73
75
74
76
In this section, we'll explain how Standard intents to create value.
75
77
We'll make use of a simple value matrix with simple sentiment scores:
76
78
77
-
-:heart_eyes:→ "absolutely love it!!!"
78
-
-:smile:→ "feels pretty good."
79
-
-:neutral_face:→ "whatever?!?"
79
+
-:heart_eyes:→ <i>"absolutely love it!!!"</i>
80
+
-:smile:→ <i>"feels pretty good."</i>
81
+
-:neutral_face:→ <i>"whatever?!?"</i>
82
+
83
+
The X-Axis represents the three prototypical stakeholder roles, while the Y-Axis represents the broad value creation categories that we have identified.
80
84
81
85
|| Software Sponsor [Principal]| Provider of SDLC Automation [Agent]| Consumer of SDLC Automation [Agent]|
0 commit comments