Same-threading is a concurrency model where single-threaded systems are scaled out to N single-threaded systems. The result is N single-threaded systems running in parallel.
A same-threaded system is similar to a traditional multi-threaded system because a same-threaded system has multiple threads running inside it. The difference between a same-threaded and a traditional multi-threaded system is that the threads in a same-threaded system do not share state.

## Load Distribution
A same-threaded system needs to share the work load between the single-threaded instances running. If only one thread gets any work, the system would in effect be single-threaded.
### Single-threaded Microservices
Multiple single-threaded microservices can run on the same machine. Each microservice can run a single thread on a single CPU.
### Services With Shared Data
If the system needs to share data or a database, it can be sharded. The data is divided into multiple databases.
### Thread Communication
Same-threaded systems can communicate through messages. If Thread A wants to send a message to Thread B, Thread A can do so by generating a message (a byte sequence). Thread B can then copy that message (byte sequence) and read it. By copying the message, Thread B makes sure that Thread A cannot modify the message while Thread B reads it. Once copied, the message copy is inaccessible for Thread A.
