Development Pipelines
Document the purposes involved in all software development at Arda and their mapping to partitions.
It is geared specifically toward Q3 2025.
Purposes¶
This section describes the four purposes that the development and deployment process at Arda needs.
Personal¶
The personal purpose fulfills the need for a short development loop and experimentation. It might provide for execution locally in a runtime system such as node, a jvm, docker instance or small kubernetes cluster. As such, it is outside the scope of this document and won’t be described further.
While it typically happens on a developer’s own computer and allows the developer to quickly write and test their feature, it might also be mapped to an independent set of loosely managed infrastructure. Those infrastructures, under the responsibility of a small team, must allow direct modification of the infrastructure.
Development¶
The development purpose fulfills the need to deploy and test on the actual infrastructure, similar to what production will be.
It needs a partition that reflects truthfully the production partition in quality but can be at a lower scale and with limited to no real data.
It might, but should not, allow direct modification of the infrastructure.
It must allow for multiple engineers to collaborate on features involving multiple components, front and back ends.
As it is a partition where active development takes place, it is not stable.
Stage¶
The stage purpose fulfills the need to ensure that the system performs as expected: it doesn’t introduce regression and implements the feature as designed.
It needs a partition that reflects truthfully the production partition in quality but can be at a lower scale. It needs a faithful data set.
It must not allow direct modification of the infrastructure.
Production¶
The production purpose fulfills the business needs of Arda.
It must not allow direct modification of the infrastructure.
Mapping (Optimistic scenario)¶
Maps the four purposes described to partitions for front-end and back-end development.
This mapping assumes that JWT authentication is only set up for between browsers and the bff and that connections from Coda to the backend are not intercepted.
Personal¶
Front-end engineers use a mix of their personal laptop and an amplify setup in Sandbox0003 that exposes development branches.
Front-end engineers own Sandbox0003 and manage it.
Back-end engineers use their laptop to write, compile, run unit-tests and execute components in a local kubernetes cluster provided by Docker Desktop.
Development¶
The development partition is Alpha002/dev.
Frontend app URL: https://dev.app.arda.cards
Stage¶
The stage partition is Alpha002/stage.
Frontend app URL: https://stage.app.arda.cards
Production¶
By September 8th, the production partition for the demo is Alpha001/prod, while it is SANDBOX0001/prod for the qr-lookup and pdf-render components called exclusively by Coda.
Frontend App URL (demo): https://app.arda.cards
Soon afterwards, qr-lookup and pdf-render components migrate to Alpha001/prod, and SANDBOX0001 is decommissioned.
This migration happens earlier if we find the bandwidth (around 0.5 day).
Copyright: © Arda Systems 2025, All rights reserved