Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk4 min

A Service Exists When It Is Declared: Generate the Service Catalog from the Repository

A repository declaration can drive deployable service facts and a generated catalog—but CI drift checks, runtime-derived gaps, and migration costs determine whether the approach pays off.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Anton Brilliantov’s proposal is to make a repository declaration the authoritative record for deployable service facts, then generate the service-catalog card and check the generated files in CI. The important part is not generation alone: CI must fail when the checked-in output no longer matches its inputs. Otherwise, generated documentation can become stale just like a hand-maintained wiki.

What “a service exists when it is declared” means

In Brilliantov’s model, the declaration is operational, not just descriptive: a service that is not declared does not deploy, and therefore is not included in the catalog. The card is a rendering of that declaration and its evidence, rather than a separate record someone must remember to update. This aims to give deployment and catalog information one authoritative home.

As an Amazon Associate I earn from qualifying purchases.

The approach is not a claim that a declaration can describe every useful fact automatically. A generated card is only as complete as its structured inputs and evidence sources. In particular, a service’s own manifest cannot establish who calls it; incoming links need evidence beyond the callee’s declaration.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What the generated service card contains

Brilliantov describes seven rows for a card. Some can come from service declarations; others depend on additional evidence or interpretation.

Card row What it records
Daemons and roles Runtime components, including synchronous handlers and background processing.
Resources Databases, queues, schedules, and migrations.
Environment variables Configuration names, including where service-owned variables are defined.
Default metrics A snapshot of metrics the service exposes.
Owner and team Ownership recorded in declaration fields.
Incoming links Services or callers that invoke this service; this cannot be inferred from the callee’s manifest alone.
Declared commitments Service commitments associated with metrics capable of measuring them.

What Brilliantov’s project snapshot shows

The figures below are counts reported by Brilliantov for his project in 2026, not industry benchmarks. They illustrate what his catalog captures, not what another team should expect.

Snapshot Reported count and breakdown Additional detail
Environment variables 59 total: 45 platform-declared and 14 service-defined. The catalog records a platform catalog owner for platform variables, and the file and line where service variables are read.
Metrics 67 snapshot records: 59 from the platform, 6 from the service, and one <dynamic> record for the dynamic-metric factory. Records include name, type, help text, labels, histogram buckets, source, and declaration location.

Why generation needs a drift check

Generating a file once does not keep it current. If declarations change but the checked-in catalog does not, the generated artifact becomes another stale document. Brilliantov’s mechanism is to run the generator in CI with --check and fail the build when output differs. He describes a corresponding check for the metrics snapshot as well.

The generator is built at the platform version pinned in the service’s own modules file. That makes the check compare against the version relevant to that service rather than an unrelated platform revision. Locally, Brilliantov says he reverts timestamp-only changes to avoid noisy diffs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Checking a Go version-injection example

Brilliantov also describes a Go build failure mode: a linker -X flag targeting a missing symbol may be silently ignored. In his example, build and tests can pass while the resulting binary still reports its default dev version. He checks the binary for the expected tag with strings, so the missing symbol is caught. This is his example, not a guarantee that every Go build behaves this way in every configuration.

Where this approach has blind spots and costs

Runtime-assembled resource variables can be missing

The environment snapshot reads configuration declarations, so resource-variable names assembled at runtime do not appear in the generated catalog. Brilliantov documents those names separately and says checks look for expected platform names and disallowed names. This is a known gap, not complete coverage.

Schema changes are migrations

Adding a card field means changing the declaration format and regenerating snapshots across services that use it. That is more involved than adding a sentence to a wiki page, especially when many services must adopt the new format.

Checks create friction by design

A drift check can fail for changes a developer sees as cosmetic, such as renaming a config field, moving a line, or adding a metric. That friction is the enforcement mechanism that prevents unnoticed divergence, but it consumes developer time.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

When a generated catalog is worth the work

Brilliantov says a hand-written page can be reasonable when there is one service and one person, and the service changes more slowly than the page. In that situation, declaration formats, generators, and CI checks may cost more to maintain than the errors they prevent.

For a team deciding between the approaches, the useful questions are how often service facts change, how harmful stale information is, how much of the needed information can be represented in structured declarations, and how much generator and CI maintenance the team can sustain. Also consider whether important facts are runtime-derived and therefore need separate documentation or checks. These are decision criteria, not a measured comparison of the two methods.

What is proposed, and what is not yet running

The declaration-backed files and checks are part of Brilliantov’s described project. The catalog web interface, call map, owners, and commitments are future direction in his account, not a running installation he claims to have built. The distinction matters: generating usable catalog data is a concrete repository practice; a complete service-catalog product with navigable relationships is a separate step.

Brilliantov’s closing question is useful for any team reviewing its own service documentation: which fields of the service card are generated, and which are still typed by hand?

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Read Anton Brilliantov’s article, “A Service Exists When It Is Declared,” on DEV Community.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.