Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
The Reactor Pattern's present in a lot of production infrastructure (Nginx, Eventmachine, 0mq, Redis), yet not very well understood by developers and systems fellas alike. In this talk we'll have a look at what code is doing at a lower level and also how underlying subsystems affect your event driven services. Below the surface : system calls, file descriptor behavior, event loop internals and buffer management Evented Patterns : handler types, deferrables and half sync / half async work Anti patterns : on CPU time, blocking system calls and protocol gotchas Help us caption & translate this video! http://amara.org/v/FG9j/
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the talk titled 'In The Loop,' Lourens Naudé discusses the Reactor Pattern and its relevance in event-driven programming, particularly within infrastructure technologies such as Nginx, Eventmachine, 0mq, and Redis. The presentation aims to elucidate the often misunderstood concepts surrounding event-driven systems, focusing on key technical aspects such as system calls, file descriptor behavior, event loop internals, and buffer management. The agenda of the talk encompasses several crucial areas: - **System Calls and I/O**: The session begins with an exploration of system calls and how they enable user processes to access resources managed by the kernel, emphasizing the differences between blocking, non-blocking, and asynchronous I/O. - **Reactive Programming**: Naudé delves into how the reactive pattern supports event-driven architectures, particularly in scenarios where maximizing throughput is essential and less focus is placed on individual request processing speeds. - **Practical Examples**: The example of a trading application that uses the Financial Information Exchange (FIX) protocol illustrates the discussed points, showcasing the complexities of handling I/O for multiple clients. - **File Descriptors**: Naudé explains how file descriptors work within the context of both blocking and non-blocking I/O, underlining key operational differences and performance implications. - **Event Loop Mechanism**: An infinite loop mechanism is introduced as a core component of the Reactor Pattern, which manages changes in the state of file descriptors and executes domain logic through an efficient event handling system. - **Performance Considerations**: The talk warns against common pitfalls such as excessive blocking times and inefficient handling of callbacks that can impact overall application responsiveness and client servicing. - **Best Practices**: Key recommendations include properly scheduling work in ticks to retain responsiveness, optimizing protocol parsing, and embracing non-blocking operations to avoid hindering the event loop’s performance. Overall, Lourens Naudé's presentation emphasizes the importance of understanding the intricacies of the Reactor Pattern, particularly in high-throughput scenarios, while raising awareness of the potential challenges that come with event-driven programming. Developers are encouraged to learn the nuances of I/O operations and adopt efficient practices to leverage this powerful programming paradigm effectively.
Suggest modifications
Cancel