Files
signoz/docs/contributing/go
Naman Verma 9d9b0e194a chore: add ability to mark API stability as beta/alpha (#12957)
<!--A few plain bullets saying what changed and why, for a reviewer
skimming it - not a wall of text, not a restatement of the diff, not
generated boilerplate.-->
#### Description

If an API that is already deployed is currently being tested via UI
integration or any other means, we should mark such APIs as under
development so that other external clients know that these APIs aren't
fully stable. This is especially required if we are working on v2
versions of APIs for any entity.

<!--Reference issues using `Closes #issue-number` to enable automatic
closure on merge. -->
#### Issues closed by this PR

Part of https://github.com/SigNoz/pulse-pod/issues/369

<!--Anything reviewers should keep in mind while reviewing -->
#### Additional Information

This PR adds the development flag on the v2 notification channel APIs

<!--Please delete paragraphs that you did not use before submitting.-->
2026-09-24 12:19:02 +00:00
..

Go

This document provides an overview of contributing to the SigNoz backend written in Go. The SigNoz backend is built with Go, focusing on performance, maintainability, and developer experience. We strive for clean, idiomatic code that follows established Go practices while addressing the unique needs of an observability platform.

We adhere to three primary style guides as our foundation:

We recommend (almost enforce) reviewing these guides before contributing to the codebase. They provide valuable insights into writing idiomatic Go code and will help you understand our approach to backend development. In addition, we have a few additional rules that make certain areas stricter than the above which can be found in area-specific files in this package:

  • Abstractions - When to introduce new types and intermediate representations
  • Authz - Authorization, roles, and access control
  • ClickHouse SQL - Quoting names and values in generated ClickHouse queries
  • Errors - Structured error handling
  • Endpoint - HTTP endpoint patterns
  • Flagger - Feature flag patterns
  • Handler - HTTP handler patterns
  • Provider - Dependency injection and provider patterns
  • Packages - Naming, layout, and conventions for pkg/ packages
  • Service - Managed service lifecycle with factory.Service
  • SQL - Database and SQL patterns
  • DSL Filtering to SQL - Compiling the list filter DSL to relational-store WHERE clauses
  • Types - Domain types, request/response bodies, and storage rows in pkg/types/