forked from nats-io/nats-architecture-and-design
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.readme.templ
44 lines (31 loc) · 2.13 KB
/
.readme.templ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
![NATS](large-logo.png)
# NATS Architecture And Design
This repo is used to capture architectural and design decisions as a reference of the server implementation and expected client behavior.
# Architecture Decision Records
{{- range . }}
## {{ .Tag | title }}
|Index|Tags|Description|
|-----|----|-----------|
{{- range .Adrs }}
|[ADR-{{.Meta.Index}}]({{.Meta.Path}})|{{.Meta.Tags|join}}|{{.Heading}}|
{{- end }}
{{ end }}
## When to write an ADR
Not every little decision needs an ADR, and we are not overly prescriptive about the format apart from the initial header format.
The kind of change that should have an ADR are ones likely to impact many client libraries, server configuration, security, deployment
and those where we specifically wish to solicit wider community input.
For a background of the rationale driving ADRs see [Documenting Architecture Decisions](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions) by
Michael Nygard
## Template
Please see the [template](adr-template.md). The template body is a guideline. Feel free to add sections as you feel appropriate. Look at the other ADRs for examples. However the initial Table of metadata and header format is required to match.
After editing / adding a ADR please run `go run main.go > README.md` to update the embedded index. This will also validate the header part of your ADR.
## Related Repositories
* Server [nats-server](https://github.com/nats-io/nats-server)
* Reference implementation [nats.go](https://github.com/nats-io/nats.go)
* Java Client [nats.java](https://github.com/nats-io/nats..java)
* .NET / C# client [nats.net](https://github.com/nats-io/nats.net)
* JavaScript [nats.ws](https://github.com/nats-io/nats.ws) [nats.deno](https://github.com/nats-io/nats.deno)
* C Client [nats.c](https://github.com/nats-io/nats.c)
* Python3 Client for Asyncio [nats.py](https://github.com/nats-io/nats.py)
### Client Tracking
There is a [Client Feature Parity](https://docs.google.com/spreadsheets/d/1VcYcKqwOp8h8zZwNSRXMS5wrdA1jZz6AumMTHZbXrmY/edit#gid=1032495336) spreadsheet that tracks the clients somewhat, but it is not guaranteed to be complete or up to date.