# Service Discovery

Record: `arch:service-discovery`
Kind: mechanism
Layer: [Extensibility Core](https://banes-lab.com/records/layer/extensibility-core.md)
Severity: contextual
Scope: service, network, runtime
Canonical: https://banes-lab.com/ontology#arch-service-discovery

## Repair

- Refactored by: Introduce Discovery Client, Externalize Endpoint
- Detected by: hardcoded URLs, missing registry lookup
- Violated by: fixed service addresses in code
- Measured by: dynamic resolution coverage
- Enforced by: config scans, deployment policy

## requires

- [Service Registry](https://banes-lab.com/records/arch/service-registry.md)
- [Health Checks](https://banes-lab.com/records/arch/health-checks.md)

## reinforces

- [Scalability](https://banes-lab.com/records/arch/scalability.md)
- [Resilience](https://banes-lab.com/records/arch/resilience.md)

## enables

- [Dynamic Routing](https://banes-lab.com/records/lex/dynamic-routing.md)
- [Failover](https://banes-lab.com/records/arch/failover.md)

## conflicts-with

- [Hardcoded Endpoints](https://banes-lab.com/records/lex/hardcoded-endpoints.md)

## tensions-with

- [Operational Complexity](https://banes-lab.com/records/lex/operational-complexity.md)

## tensions

- [Service Discovery Operational Complexity](https://banes-lab.com/records/tension/operational-complexity-service-discovery.md)

## referenced-by

- [Runtime Discovery](https://banes-lab.com/records/arch/runtime-discovery.md)
