Git Product home page Git Product logo

nats-site's Introduction

NATS.io

This repo houses the code for the NATS site at https://nats.io. NATS documentation is not included in this repo, see the nats.docs or https://docs.nats.io]

The NATS website is based on the Hugo framework using the Bulma CSS framework. The content structure is designed to be simple, informative, intuitive and fast -- just like NATS! Please keep these principles in mind as you modify existing content or design new content for the nats.io site.


Contents


Contributing content

We view this project as a perpetual work in progress that can greatly benefit from and be enriched by the knowledge, wisdom and experience of our community.

We follow the standard Fork-and-Branch GitHub workflow. If you're not familiar with this process, please refer to either of the following excellent guides:

We encourage and welcome your contributions to any part or element of this site. We will review and discuss with you any contributions or corrections submitted via GitHub Pull Requests.


General Style Guidelines and Conventions

Markdown guidelines

  • Use topic-based files and titles
  • Use only headers 1 (#), 2 (##) and 3 (###)
  • Use single spaces to separate sentences
  • Markdown syntax: https://daringfireball.net/projects/markdown/syntax#img
    • Links: [NATS](https://nats.io/)
    • Cross references: [Clients](/clients/)
    • Images: ![drawing](/img/nats-msg.png)
  • Triple ticks for code, commands to run, user operations, input/output
  • Single ticks for executable names, file paths, inline commands, parameters, etc.
  • Graphics: save as *.png; source in /src/img/* depending what you are using the image for; blog, about, etc.

Content Organization

The basic organization of the site is very simple, with each top navigation link corresponding to a Markdown file in the nats-site/content directory. The HTML documents and any Markdown documents contained in this directory are assembled by Hugo and rendered to static HTML during the build process.

The structure of the content directory is as follows:

- /content
	- /blog
	- /download
	- about.html
	- community.md
	- contributing.md
	- privacy.md
	- support.html

The html files or directories should be pretty self-explanatory for what pages they are used for.


Adding Documentation

The NATS documentation has moved to the nats-io/nats.docs repo.

Adding Content Pages

Any new page should be a raw Markdown document placed in the appropriate content directory listed above.

Adding Clients and Utilities

To add a new NATS Client or Utility, add to the applicable data file

  • Add/update NATS Clients - languages.toml
  • Add/update NATS Connectors & Utilities - addons.toml

Adding a Blog Entry

To add a new blog entry, use the hugo new command like the following:

	hugo new blog/page-url-for-blog-post.md

Replace page-url-for-blog-post with a SEO (Search Engine Optimization) friendly page url like: nats-lands-in-london. So the resulting command would be: hugo new blog/nats-lands-in-london. Then new blog entry would reside at: https://nats.io/blog/nats-lands-in-london

Once the command is run you can find the new blog entry in content/blog/nats-lands-in-london.md.

In the frontmatter of the new entry you will see metadata like this:

+++
date = "2019-12-01"
draft = true
title = "NATS Lands in London"
author = "Esteemed NATS Thought Leader"
categories = ["Engineering"]
tags = ["NATS"]
+++

Make sure to update the page metadata to reflect the specifics of your post (author, targeted publish date, etc.).

By default, draft = true is set on blog posts. When a post has this status, it won't be published to the production site, but it will be viewable via the Netlify deploy preview. The following must be true for a post to go live on the site:

  • The post's date must not be in the future
  • The draft parameter must be set to false or not be present

Categories

For Categories you are going to add on or more of the following:

  • General
  • Engineering
  • Community

So for our example we would change categories in the frontmatter to:

	categories = ["Community"]

Date

The date timestamp should be the exact time you ran the command to create the new blog entry. If you need to change it make sure you follow the same convention that is already there. date = "2015-11-05T11:45:03-08:00". The date cannot be in the future.

Tags

For Tags, you can add as many tags as you feel are needed and they can be anything:

	tags = ["nats","london","community"]

Title

A default title is generated from the url you provided with the hugo command but we recommend you change this to something better suited for display purposes. Example: title = "NATS Lands In London"

Blog Entry Content

Images

To add images to a blog entry, first place them in /src/blog/*. You will need to create a folder in src/blog/ with the same title as your post. You may add images of any size, but please make sure they are at least 800x600 for quality purposes.

You may link to these images then. Example: <img src="/img/blog/<your blog folder>/IMAGE-NAME.png">

Embedded Tweets

To add an embedded tweet, you just need to grab the embed code from the tweet, and then wrap the embed code in a div as follows:

	<div class="tweet-embed-con">
	  <!-- Twitter Embed code goes here -->
	</div>

Check out the blog entry /content/blog/nats-lands-in-london.md for a detailed example.


Adding a Company Logo

If you are a production end user of NATS and would like your company logo displayed on our Home page, please email [email protected] with your request.


Local Development

You can either use docker image for your local development or install requirements following this documentation.

Clone your forked copy of the repository:

git clone [email protected]:<YOUR GIT USERNAME>/nats-site.git

Change to the directory:

cd nats-site/

Install Prerequisites

Install Hugo, npm.

Building the NATS site/documentation currently requires Hugo version 0.80 or higher. Installation instructions can be found here.

Building the Site

See the makefile for run commands.

Thank you for your interest in NATS!

nats-site's People

Contributors

anadon avatar aricart avatar arm4b avatar autodidaddict avatar bjflanne avatar bruth avatar byrnedo avatar chriscasper avatar colinsullivan1 avatar custa avatar danielwertheim avatar dependabot[bot] avatar gcolliso avatar guitarbum722 avatar hengm3467 avatar jethr0null avatar jirenius avatar jnmoyne avatar jtemporal avatar kozlovic avatar lparis avatar lucperkins avatar mffrench avatar philpennock avatar polyg314 avatar repejota avatar scottf avatar sternakt avatar vinceveve avatar wallyqs avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nats-site's Issues

Go client does not work with queueing examples

The documentation listed here says that the following commands should subscribe to the "foo" subject on the "my-queue" queue.

cd $GOPATH/src/github.com/nats-io/nats/examples
go run nats-sub.go foo my-queue

However, looking at the code for nats-sub.go, it looks like the second argument is ignored, resulting in all the clients receiving the published message, when what was expected was that only one client would receive the message.

However, the Python client works as expected.

python examples/nats-sub foo -q my-queue

Benchmark instruction not working

I'm trying to follow the benchmark instructions here and the java steps seem to fail with lots of "cannot find symbol" errors.

I don't know anything about Java, but I was able to compile the source files in step 1 by specifying a sourcepath and classpath:

javac -d ./bin -sourcepath ./src/main/java/org/nats/*.java -cp /Users/x/.m2/repository/org/slf4j/slf4j-api/1.7.14/slf4j-api-1.7.14.jar

However now on the next step javac -d ./bin ./src/test/java/org/nats/benchmark/*.java

I'm getting additional errors:

./src/test/java/org/nats/benchmark/PubPerf.java:17: error: cannot find symbol
                Connection conn = Connection.connect(prop);
                ^
  symbol:   class Connection
  location: class PubPerf
./src/test/java/org/nats/benchmark/PubPerf.java:17: error: cannot find symbol
                Connection conn = Connection.connect(prop);
                                  ^
  symbol:   variable Connection
  location: class PubPerf
./src/test/java/org/nats/benchmark/PubSubPerf.java:18: error: cannot find symbol
                final Connection conn1 = Connection.connect(new Properties());
                      ^
  symbol:   class Connection
  location: class PubSubPerf
./src/test/java/org/nats/benchmark/PubSubPerf.java:18: error: cannot find symbol
                final Connection conn1 = Connection.connect(new Properties());
                                         ^
  symbol:   variable Connection
  location: class PubSubPerf
./src/test/java/org/nats/benchmark/PubSubPerf.java:19: error: cannot find symbol
                final Connection conn2 = Connection.connect(new Properties());
                      ^
  symbol:   class Connection
  location: class PubSubPerf
./src/test/java/org/nats/benchmark/PubSubPerf.java:19: error: cannot find symbol
                final Connection conn2 = Connection.connect(new Properties());
                                         ^
  symbol:   variable Connection
  location: class PubSubPerf

I also tried specifying various combinations of classpath/sourcepath, but it didn't work. I'm guessing javac just needs to know the classpath for Connection, but i'm not too sure where that is. Is there an easy way of getting the benchmarks up and running?

Seems that documentation lacks section on TLS

Did not find a section on TLS. Precisely, several users already had issues due to the lack of understanding that even when servers and clients are configured to use TLS, the beginning of the protocol is done in plain text.

Some info sent to an user on slack:

The beginning of the protocol exchange between server and client is done in plain text.
When the client creates the TCP connection, the server will, in response, send in plain text its β€œINFO” protocol message.
From this protocol, the client knows if the server requires or not TLS. If the client is not configured for TLS and server asks, the connect will fail before even attempting to send anything to the server.
And vice-versa.
If server and client are configured for TLS, the client, after receiving the INFO protocol, will switch the connection to TLS and then send its CONNECT protocol.

Provide guidance for NATS streaming store selection

We should provide some guidance on when to use which store.

Memory

  • Pure speed
  • Do not require at least once delivery guarantees. This may be for use cases where NATS streaming if being used fo it's features (e.g. replay, rate limiting) rather than persistence requirements, and the system can rebuild state upon failure.

File

  • Require at least once delivery.
  • High throughput requirements and moderate number of channels

Database

  • Have strong requirements around data backup
  • High number of channels
  • Moderate/Low throughput requirements.

CC @kozlovic for comment.

Note, saving off this content here until the site is refactored (otherwise I'd have just submitted a PR).

Add Logo Process

Provide a process for users to add their logo. This could be instructions to email our "info" email address and we add the logo or instructions/Walkthrough for a PR. IMO instructions to email us with guidance on logo sizes, types, etc, would be easiest for our users.

Section for subjects and wildcards

We should have a section in the documentation focusing on subject usage and wildcards.

A good place in the documentation could be a new list item under concepts, near publish/subscribe.

Content can be garnered from:
https://github.com/nats-io/nats#wildcard-subscriptions
https://github.com/nats-io/csnats#wildcard-subscriptions
https://groups.google.com/forum/#!topic/natsio/zeQKbVNi0rc
https://groups.google.com/forum/#!topic/natsio/z12Afncvslc
https://groups.google.com/forum/#!topic/natsio/4hIGmO48ERQ

@lparis, if you can get to this, that'd be great, otherwise I will when I get a chance.

Suggestion for better documentation

Had a particular hard time figuring out how clients and server "under the hood" communications go, and how to set ping options in order to have prompt reconnection or awareness of failures.

Add a lead paragraph to explain clustering.

The clustering documentation contains everything necessary to set up a cluster.

However, it requires reading about half the page to understand the basics of how it works. If the first paragraph contained something like the following, it would help people get started more quickly.


In addition to a port for listening for clients, gnatsd can listen on a "cluster" URL (the -cluster option). Additional gnatsd servers can then add that URL to their -routes argument to join the cluster.

Examples:

Without clustering:

gnatsd -p 4222

Simple clustering:

# server A on 10.10.0.1
gnatsd -p 4222 -cluster nats://10.10.0.1:5222

# server B on 10.10.0.2
gnatsd -p 4222 -routes nats://10.10.0.1:5222

Server B may also serve a "cluster" URL, and Server A may add that to its routes. However it is not required to do this; once a server connects to the cluster it becomes aware of all other servers in that cluster.

# server A on 10.10.0.1
gnatsd -p 4222 -cluster nats://10.10.0.1:5222 -routes nats://10.10.0.2:5222

# server B on 10.10.0.2
gnatsd -p 4222 -cluster nats://10.10.0.2:5222 -routes nats://10.10.0.1:5222 

Clients connecting to any server in the cluster will remain connected to the cluster even if the server it originally connected to is taken down, as long as at least a single server remains.

Errors when running hugo server

I get the following errors after running hugo server -w --port=1414 --theme=nats --buildDrafts:

ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 Error while rendering page clients.html: template: clients/single.html:7:16: executing "clients/single.html" at <$.Site.Data.clients>: Data is not a field of struct type *hugolib.SiteInfo
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 Error while rendering page download.html: html/template: "download/single.html" is an incomplete template
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: theme/partials/header.html:2:20: executing "theme/partials/header.html" at <.Site.BaseURL>: BaseURL is not a field of struct type *hugolib.SiteInfo in theme/partials/header.html
ERROR: 2016/01/06 template: partials/quick-view.html:5:14: executing "partials/quick-view.html" at <$.Site.Data.clients>: Data is not a field of struct type *hugolib.SiteInfo in partials/quick-view.html

The server is able to run and serve on port 1414; however, there seem to be missing partials and styles. Any insights?

Edit: This is on Mac OS X with hugo installed via homebrew. This is the output of hugo version:

Hugo Static Site Generator v0.13-DEV buildDate: 2015-01-16T00:28:45-08:00

Distinguish NATS vs. NATS Streaming

From @htrob
"The NATS website can be a bit confusing and newcomers have a hard time figuring out what are the differences between NATS and NATS Streaming, what's STAN and when to use either. A feature set matrix for each side by side and clear definition of terms upfront should clear the difficulty/inconsistencies/fuzziness"

Minor notes on `content/documentation/index.md`

"NATS Clients" section: It would be nice if there were recommended community clients for languages not directly supported by Apcera. Similar to how Redis does it. This wouldn't imply that Apcera supports these, but would make a developer feel much more comfortable downloading a third-party client.

"NATS use cases" section: Where possible, brief, plain-English examples of the bullet points would help people understand the capabilities, and would be more likely to cause them to continue reading and download NATS. Also, typo: "High througput message fanout" (missing "h" in throughput).

Question regarding NATS message formats

Hi,
I have a few questions regarding the functionality of NATS. Is it possible to send and receive .txt, .doc, or any other files directly using NATS? I saw in the documentation page that NATS server treats all messages as byte arrays (https://nats.io/documentation/writing_applications/publishing/). And some libraries may provide helpers to convert other data formats to and from bytes. If its possible to send and receive other formats of messages or files as such, then how can I do that? Please provide any documentation. Also is there any detailed design manual of NATS publicly available for beginners to understand the design concepts underlying the messaging system?

Troubleshooting Documentation

We need a guide to troubleshooting NATS. This can include:

  • Enabling server tracing/debugging, what to look for.
  • Verifying client connectivity to the server
  • Troubleshooting TLS
  • Client side instrumentation (error and connection callbacks)

Instructions at "Build NATS Server from Source" are incorrect

Step 3: "CD to the gnatsd directory you cloned." cd $GOPATH/src/github.com/nats-io/gnatsd
Wrong. . . This directory does not exists in the source tree.

Step 4: "View the NATS server source code." Use command ls to list the gnatsd.go file.
Use command cat gnatsd.go to view the code.
Wrong. . . The file gnatsd.go does not exists in the cloned source repo.

See:

C:\Programs\Go\src\github.com\nats-io>dir gnatsd.go /s
 Volume in drive C is Windows
 Volume Serial Number is ACA3-EE57
File Not Found

That makes the rest of instructions at "http://nats.io/documentation/tutorials/nats-source/" useless.

Move Clients into Download

We should add all the information that is in the Clients page to the Download page, and do away with the separate Clients page and menu item.

The Downloads page should simply have a Server section (with the gnatsd links) and Clients section (with all the client info/links).

/cc @derekcollison @chriscasper

Improving 'Day 2' Documentation

Based on some recurrent feedback from developer community, enhance documentation to cover topics of interest after initial set up of NATS. Examples include:

  • Sizing NATS (single node and Clusters)
  • Upgrading NATS (especially when clustered in an "always" on scenario)
  • Troubleshooting NATS (what to look for in the logs, what to expect with debug or trace output, etc)

Add Tutorials/Walkthroughs

Alongside the documentation, I propose we add a tutorials section. This section could contain content such as:

  • Step by Step application development using various NATS clients
  • Walkthroughs of server deployment, setting up routes, etc.
  • Using / Developing NATS connectors
  • A walkthrough of the process of making a contribution, where to find what to do, and what to expect throughout the process.

gnatsd config should specify defaults

Documentation for the gnatsd config should specify default values for properties that are required.

Alternatively, the example config can be updated to reflect the defaults for required properties.

This is a common practice in ops. It's not instinctive to visit the gnatsd godoc to figure out what the defaults are.

Queuing of messages

Hello, I have one question, maybe I misunderstood the messaging-bus concept.
I'm using microservice architecture (stateless) with REST APIs. E.g. when an API is called then during the processing I want to access a bus-system and i want to get newest data for a certain topic. it's just possible when the message on the queue keeps as long as new message will be published. It means the message can not be deleted, only publishing of new data on the topic can rewrite the data => similar to redis (hashmap).

The problem in microservice architecture is that callback functions are useless, because as i said this is stateless architecture. What would be the solution by using nats? Thanks!

More examples under concepts

Would it be possible to include a sample conversation for the examples under concepts? Specifically but not limited to Request Reply. I would like to be able to test these concepts in telnet to get a better idea of how they work.

how the get the ping example?

On the docker docs site It says there is an example client that can be used to test the docker gnats container. However it only shows a path but not where the path comes from.

It says the executable would be in: cd /nats-docs/tutorials/examples/

I assume without testing that a vanilla Ubuntu 16.04 computer won't have a root directory called /nats-docs/ (bold assumption, I know ;) ).

Also one might wonder why it's not just possible to "docker run nats-ping-example" or similar.

Missing reference to Python in clients list

Hello,
in this page a link to the Python client is missing.
Only the link to a third party lib is provided and travis reports that it doesn't compile.

But on the Download page the Python clients are listed.

The absence of a python client would have been a show stopper for us. I was lucky I didn't stop my investigation at the first page. Could you please fix this nats-client page ?

Common design patterns

Review past requests for design patterns and add these as a section to the documentation. One that frequently occurs is a coordinator/worker architecture (request to unknown # of subscribers, then select one to do work based on criteria in the response).

Requirements for HA

From @Signull on January 11, 2017 16:22

Hello @derekcollison

I love NATS however the company I work for wont go with it because they do not see obvious documentation about HA, CLUSTERING, and in addition they want to see a performance shocker. I know that as its written in GO its already performing at a much better rate. However adding a selling point in picture/graphs setting, showing how much more operations NATS can perform against Kafka on a per node basis would be an amazing selling point. Lastly add a whole bunch of QA to stack overflow. It looks like there isn't a community behind this and it scares people away.

Sincerely "someone who thinks that kafka, zookeeper, and all its other toolings are archaic when it comes to setup and usage."

AKA The DevOps Senpai.

I AM BEGGING YOU TO SUCCEED.

Copied from original issue: nats-io/go-nats#251

what does NATS stand for?

I'm assuming it's an acronym since it's in all-caps, but I can't find anywhere on the site where it defines the acronym. Maybe an FAQ can be added?

Review and correct the NATS Client Development Guide

There are a number of inaccuracies and grammar errors in the document that need to be cleaned up.

  • Need to remove second-person narrative ("you [...]") in multiple places.
  • Link to the Protocol Guide as the authoritative source for specific syntax and meaning, vs. re-defining it, possibly in a conflicting or confusing way, here.
  • Re-focus the document on the 5,000 foot view of client structure and conventions, possibly including some FAQs that are client-dev specific, e.g.: Why do you send a PING-PONG during the CONNECT sequence?

Improve docs on NATS Streaming

Examples

-The relationship between NATS Streaming and NATS Server - esp operationally WRT to if somebody is already running NATS Server what should they do.

-How to create a connection - some users eventually figured out you have to create a plain NATS connection first, but still are not sure they are doing it the best/simplest way.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.