We are going to be hitting a bunch of documentation. What
documentation would (have) help(ed) you? Where can we improve docs?

Feel free to answer here or just create issues on the docs project.



Configuring HTTP listeners in Windows with netsh instead of obsolete httpcfg.
More in-depth details on how clustering works - what’s purely internal, what do I need to expose to the external clients?

Good one! this is on the list.

The other side of this btw is explaining the http prefix BS better to
linux users :slight_smile: My guess is this won't be there too much longer though.

Andrew as a question for future things. How would you feel if it
didn't use http.sys at all? Would this be a pro or a con? We have been
considering say libuv for this.

no http.sys weirdness
no http.sys config
configure only ES
not "idiomatic windows"

no http.sys management
not "idiomatic windows"

In general configuring SSL in Windows happens from the IIS console. 99% of developers and 97% of admins have probably never used netsh. The few that have are probably WCF developers, and those are fairly few and far between, or Microsoft employees or MVPs.

Actually configuring an HTTP listener in Windows is pretty simple however. Once you have a valid cert installed, it’s a one or two step process. I don’t see any reason to go to an alternative. And I’d be happy to write up Windows docs for this based on my own experience the past few weeks.

" I don't see any reason to go to an alternative."

5-10x speed up? :slight_smile:

From an administrative perspective I mean :slight_smile:

Speed is great … as long as it’s not too much of a challenge to configure and administer.

For me there is the other side. What is an http prefix in linux?!
There are also some distinct issues with the API. As an example I am
using elastic ip but my local node is when I
try to put a http prefix of it will actually bind all
my interfaces meh. Same if I use prefix and this
doesn't map its first DNS entry to my exact ip address (they convolute
two things into one setting). Explaining this is not easy. Something
like libuv would simplify this configuration (give me a cert file,
what port to bind to, etc) on top of being 5-10x faster. On a side
note I am not sure how much I trust the http code in mono.


Projections! :slight_smile:

The semantics of writes and subscriptions with combinations of MaxQueueSize, MaxConcurrentItems, MaxRetries, MaxReconnections and OperationTimeouts on a connection.

Also dropping and restarting subscriptions.

The lifecycle of a connection, e.g. what happens if i subscribe before i connect?

I guess my theme here is we need more documentation regarding the internals of the .net client library… :slight_smile:



I think it would be helpful with more docs around cluster setup/configuration and running on Linux. Tips and tricks on what to do when things go south, for instance common issues people experience with a cluster setup, such as misconfiguration, with possible solutions. What do to in “disaster” scenarios. The docs on backup are a bit thin and could perhaps have one or two examples. In general, yes please beef up the docs :slight_smile:

Are there any particular sections you think can be better here? Is it
the http prefixes which are not very linux idiomatic or more in
general how to setup a cluster?

A bit late to the party, but I assume you’re not finished writing documentation :wink:

Everything about scavenging, merging, chunks and so on and so forth. I don’t know much what a chunk is, what the merging does, or why we need/want to do this or that.
I don’t know what about it I should know and what I don’t need to think about.
I think those parts, concerning the maintenance of the database is quite important to have thorough docs on.

Awesome that you’re at it btw.

Not any particular section, just my general impression is that docs could be more
polished and should get more attention which you are doing now and that is great :slight_smile:

What is of my particular interest is clustering as I think that is what

people end up using. Examples: what happens if you only enable

projects on one node - Which scenarios can you come into when cluster

nodes come into disagreement and what happens in those cases, e.g

is it normal that a node commits suicide and expects to be


Things that happen in a cluster, what to watch out for and which messages

in logs should be considered normal even though they look a bit odd.

Btw, I have a never seen anything else than SLOW BUS MSG and SLOW QUEUE MSG.

Are there fast ones or normal ones?

“enable projects” -> enable projections

Btw, I have a never seen anything else than SLOW BUS MSG and SLOW QUEUE MSG.

Are there fast ones or normal ones?

Yes - the normal ones don’t get reported. Slow queue messages can be used in conjunction with the stage summary overview to determine where bottlenecks are and whether resources (e.g. disk, network) are constrained for the desired throughput and latency.

I’d like to see some documentation about ensuring ordering and reading positions (commit position / prepare position - what are these?), and how these are affected by different partitioning of streams.
Specifically, I’m at the point where (I think) it makes sense for me to project a group of streams into a consumer stream that the client can focus on. But i need to know, for each event, what position it is in the consumer stream, and it’s position in the stream it’s linked from.


Huh - my problem turned out to be very very easy to solve… (number of event in stream and streamname on the top level of a ResolvedEvent is different from in the ResolvedEvent.Event).
Still interested in what commit position and prepare position is though…