Software catalog
6 systems, read from the catalog database, generated from catalog/catalog.yaml. Test metadata names these entries, so every test result points back here.
Read from the catalog database, itself generated from catalog/catalog.yaml. A database link opens it in the database browser, an API link opens its contract, runs opens the test results filtered on that component, test runs opens the runs of that team.
The map draws each system, its products and its components, coloured by the test runs whose metadata names them: a job counts for an item when its tests declare it (system, product, component), its last run (per job and environment) says passed or failed.
Map of the catalog, coloured by the tests
Click an item to see its test runs.Bank
The partner bank and our client of its core banking API.
Products
Checks that a third party still answers what the contract we copied promises, with requests generated from that contract.
Components
| Component | Type | Owner | APIs | Depends on | Tests |
|---|---|---|---|---|---|
| Bank Partner partner/ The third-party core banking API, played locally by a fake and in tests by Microcks. |
external | partners-squad |
provides bank-partner-api
|
runs |
Data exchange
The files teams drop in buckets for finance and partners, and their contracts.
Products
The same generic checks on every team bucket, each bucket bringing its own contract (names, format, freshness, manifest).
Components
| Component | Type | Owner | APIs | Depends on | Tests |
|---|---|---|---|---|---|
| Catalog feed job buckets/catalog-feeds/ Publishes the product and stock feeds as JSON with a manifest, simulated by the files of buckets/. |
worker | data-squad |
catalog-feeds-bucket bucket
|
runs | |
| Finance export job buckets/finance-exports/ Drops the invoices of the day as a CSV file, simulated by the files of buckets/. |
worker | data-squad |
finance-exports-bucket bucket
|
runs |
Quality platform
The Quality Console, the test results bucket and the test tooling.
Products
The back office of the quality platform, its tools and the company data, read-only.
Every CI test run, uploaded to a bucket, indexed and shown with its trends.
Components
| Component | Type | Owner | APIs | Depends on | Tests |
|---|---|---|---|---|---|
| Bucket checks features/bucket-checks/ Generic Gherkin checks run on every team bucket, one row of examples per bucket. |
test-suite | qa-core |
catalog-feeds-bucket bucket
finance-exports-bucket bucket
|
runs | |
| Gherkin runner src/gherkin_runner/ Runs the acceptance scenarios on demand against the running stack. |
service | qa-web |
provides gherkin-runner-api
|
results-bucket bucket
|
runs |
| Quality Console src/quality_console/ Back office pages and tools of the quality platform. |
website | qa-core |
calls gherkin-runner-api
|
catalog-db database
identity-db database
mycompany-db database
orchestrator-db database
results-bucket bucket
|
runs |
| Test results uploader src/test_results/ Uploads a run to the results bucket and indexes it. |
library | qa-core |
results-bucket bucket
|
runs |
Identity
A simulated Auth0 tenant, its users and the emails it sends.
Products
Creates an account, signs in, resets a password, with every email landing in the QA mailbox.
Components
| Component | Type | Owner | APIs | Depends on | Tests |
|---|---|---|---|---|---|
| Identity service src/identity/ A simulated Auth0, sign-up, sign-in, password reset and management tickets. |
service | identity-squad |
provides identity-api
|
identity-db database
qa-mailbox mailbox
|
runs |
Orders
The event-driven workflow that takes an order from placed to paid.
Products
Places an order and follows it while stock is reserved, the invoice issued and the payment captured.
Components
| Component | Type | Owner | APIs | Depends on | Tests |
|---|---|---|---|---|---|
| Order worker src/order_workflow/ Runs the order workflow one step per event. |
worker | checkout-squad |
publishes order-workflow-events
consumes events order-workflow-events
|
mycompany-db database
orchestrator-db database
order-workflow-queue queue
|
runs |
Storefront
The customer-facing web application and the API behind it.
Products
Greets a returning customer by first name, counts the visits and shows the bank balance.
Components
| Component | Type | Owner | APIs | Depends on | Tests |
|---|---|---|---|---|---|
| Newsletter service src/newsletter/ The newsletters a customer receives, in their language. |
service | storefront-squad |
provides newsletter-api
|
mycompany-db database
|
runs |
| Storefront API src/hello_api/ Greets customers, counts visits and places orders. |
service | storefront-squad |
calls bank-partner-api
publishes order-workflow-events
provides storefront-api
|
mycompany-db database
orchestrator-db database
order-workflow-queue queue
visits-cache cache
|
runs |
| Storefront web frontend/ The static page customers use, served by nginx. |
website | storefront-squad | runs |
APIs
Teams
| Team | Jira project | What it owns | |
|---|---|---|---|
| Checkout squad checkout-squad | CHK | Owns orders, stock, invoices and payments. | test runs |
| Data squad data-squad | DATA | Owns the files the company exchanges through buckets. | test runs |
| Identity squad identity-squad | IDN | Owns sign-in, accounts and the identity emails. | test runs |
| Partners squad partners-squad | PTN | Owns the integrations with third parties, the bank first. | test runs |
| QA core qa-core | QAC | Owns the quality platform, its console and its test tooling. | test runs |
| QA web qa-web | QWEB | Owns the end-to-end and acceptance tests of the storefront. | test runs |
| Storefront squad storefront-squad | STORE | Builds the storefront and the customer welcome. | test runs |