Skip to content

Latest commit

 

History

History
52 lines (38 loc) · 4.5 KB

File metadata and controls

52 lines (38 loc) · 4.5 KB

Engineering context

About this repository

ServiceControl is the monitoring component of the Particular Service Platform: it ingests audit and error messages, tracks endpoint heartbeats, and exposes results over an HTTP API consumed by ServicePulse. For local run and debug steps see the README.md, for test categories and setup see testing.md, and for coding conventions see coding-and-design-guidelines.md.

  • src/ — ServiceControl, ServiceControl.Audit, ServiceControl.Monitoring instances, persisters, and their test projects
  • docs/ — design rationale, testing guidance, and architecture decision records
  • deploy/ — PowerShell installation and management modules for ServiceControl instances
  • tools/ — build and CI helper scripts
  • .github/workflows/ — CI pipelines for build, test, container publishing, and dependency maintenance

Start here

Architecture and design

This section points to sources that explain why ServiceControl is designed the way it is. Each entry says which question it answers. How-to material such as testing setup stays in the pages linked under Start here.

Decisions and rationale

Decisions recorded in pull requests

A pull request is listed here only when it is the canonical record for a decision area: it establishes a durable constraint or convention, or rejects an alternative likely to return, and no docs/ file or ADR covers it. Bug fixes and routine changes are not listed; recover them from git log and gh pr view.

  • Pagination limits belong to the API layer, not the persister — #5899
  • Timestamps in the error instance come from an injected TimeProvider, not DateTime.UtcNow — #5843
  • HTTPS certificates load during settings validation so an unusable certificate fails fast, and an ingestion-only worker serves its own certificate — #5891, #5923
  • Endpoint throughput recording uses an atomic upsert because duplicate keys are routine, not exceptional — #5895
  • Failed audit imports use deterministic ids derived from the message id so repeated failures do not duplicate — #5919
  • SQL Server and PostgreSQL primaries can be upgraded, but the upgrade path does not create them — #5921
  • New RavenDB databases use the Lucene search engine, and indexes still on Corax are flagged — #5833

Keep this index current when a canonical source is added, replaced, or retired; link, do not copy.