github.com/m3db/m3@v1.5.1-0.20231129193456-75a402aa583b/COMPATIBILITY.md (about)

     1  # Compatibility
     2  
     3  This document describes versioning compatibility guarantees. Any compatibility
     4  outlined here will be maintained for at least the current major version.
     5  Additional guarantees may be added within the same major version, but existing
     6  guarantees may only be modified or removed as part of a major version change.
     7  
     8  If you discover a breaking change, please [open an issue][issue].
     9  
    10  [issue]: https://github.com/m3db/m3/issues/new
    11  
    12  ## v1.0
    13  
    14  As of version 1.0, m3db/m3 and its components are guaranteed to have **binary**,
    15  **configuration**, **wire**, and **transport API** compatibility:
    16  
    17  | Compatibility | Scope | Guarantee |
    18  | :------------ | :---- | :-------- |
    19  | binary | All released executable components. | All executable components will maintain their current functionality. Components may have *additional* functionality added, but no existing functionality will be changed or removed. |
    20  | configuration | All configuration serialization for binary components. | All configuration will maintain serialization compatibility. New configuration properties may be added, but existing properties will not be renamed, removed, re-typed, or changed semantically or behaviorally. |
    21  | wire | All on-the-wire encoding for data to/from binary components. | All wire encoding (e.g. Protobuf, Thrift) will maintain wire compatibility. Any changes to IDLs or other encodings will be backwards-compatible. |
    22  | transport API | All exposed transport APIs for communication to/from binary components. | All transport APIs (e.g. m3msg, Thrift, HTTP+JSON) will maintain their current surface area, definitions, semantics, and behavior. Any changes to APIs will be additive or done semantically and with wire compatibility. |
    23  
    24  This version does **not** guarantee library-level compatibility. Users are not
    25  encouraged to integrate libraries from m3db/m3 directly: use at your own risk.