start and stop
A durable database is a file, and a file can only be opened for writing by one process at a time. strata start makes one process the owner and has it serve a socket, so other processes can work through it instead of being locked out.
strata ./my-db startclient_count 0 hosting true is_owner true owner_pid 41207 socket_path /run/user/1000/strata/310b3d753f3bc2d5.sockIt blocks. The command prints that and then stays in the foreground until it is stopped: it is the host, not a request to start one. Run it in its own terminal, or under whatever supervises your services.
While it is hosting
Other processes just use the database. There is no attach step and no different command; they open the same path and are brokered to the owner.
strata ./my-db kv put from-client yes strata ./my-db kv get greetingFrom one of those processes, ipc status reportsis_owner false and a client_count that includes it. From the owner it reportsis_owner true. That difference is the quickest way to tell which side you are on.
Stopping
strata ./my-db stopstopped truestop is run from anywhere, not from the blocked terminal. The owner process exits on its own once stopped, so there is nothing left to kill.
ipc stop does the same thing through the command catalog, and is what an SDK calls.
When you need this, and when you do not
You need it when more than one process must write to the same durable database and you want to decide which one is the owner, rather than letting whichever starts first take the lock.
You do not need it for a single process, and you do not need it to read. The default --ipc host already lets the first process host a socket on its own, so a second process is brokered without anyone running start. What start adds is an owner that is not doing anything else and does not exit when a piece of work finishes.
--ipc chooses the behaviour: client brokers without ever hosting, and off opts out of the socket entirely.
Durability is the owner's, not yours
This is the sharp edge. When a process is brokered to an owner, the owner's durability mode is what applies. Passing --durability always to the client is accepted and has no effect: it does not raise the owner's setting, and nothing warns you. Set the mode on the process that runsstart. Tracked as strata-core issue 3395.
strata ./my-db --durability always startDurability covers what the two modes actually promise.