Designing for low latency is hard. We request principles to aid us navigate the performance landscape. I'll present here a ranked set of guidelines to lead you through the maze of trade-offs that you will meet in designing a low latency application:
1. No Garbage – none, really?
2. Natural Batching and why you request it.
3. Threads are evil.
4. No exceptions!
5. The Single author Principle.
6. Sharing isn’t caring.
7. Good programmers copy, large programmers … don't.
We'll look at the implementation of these principles in the Aeron messaging strategy and the measured benefit of utilizing them.
Applying these principles to the plan of any application – low latency or otherwise – will consequence in a little complex, more efficient, more maintainable system.
