Home / Companies / Ably / Blog / February 2021

February 2021 Summaries

4 posts from Ably

Filter
Month: Year:
Post Summaries Back to Blog
The Publish/Subscribe (Pub/Sub) pattern is a communication method that allows for real-time messages to be sent from one device, known as the Publisher, to other devices called Subscribers. This is done through a message broker which receives messages from Publishers and then sends them to relevant Subscribers. Topics or channels are used to identify who each message should be sent to. The key advantage of using this pattern is that it allows for dynamic message distribution without any actions on the Publisher's end, and subscribers don't need to repeatedly poll a publisher for updates nor communicate directly with them. This makes it ideal for applications like chat apps where clients can both publish messages and subscribe to them. In Go, this pattern is particularly well-fitted due to its inherent design principles of scalability and concurrency. It uses channels to communicate between goroutines, allowing multiple goroutines to both publish and subscribe to these channels. This makes it one of the most well-suited languages for extending this Pub/Sub functionality to networked communication. Ably is a protocol that can be used on top of WebSockets for pub/sub in Golang, allowing you to communicate over WebSockets by using a higher-level set of capabilities. It supports features like ensuring the ordering of messages and providing compression methods for communication. A simple chat application can be created using Ably's Go library, which allows users to connect with a unique identifier, retrieve the history of chat on the channel, and publish and subscribe to messages. This application can also use Presence to identify a user and listen for when people enter or leave the chat. Overall, Pub/Sub is an extremely powerful pattern that complements Go's inherent distributed bias. It can turn complex communications problems into more manageable chunks by separating publishers from subscribers, making it particularly versatile in its use.
Feb 23, 2021 3,166 words in the original blog post.
Ably's journey from a small team in Camden to an acclaimed company across Europe involved a significant evolution in its culture and values, particularly as it grew from 13 to over 40 employees. Initially, the company's values were loosely defined around preferred traits like flexibility and minimal office politics, but as the team expanded, there was a need to formalize these into actionable and measurable values. This process was guided by Carl Martin, who, alongside the founders, surveyed employees and conducted interviews to establish core values that would align with Ably's mission to become the definitive infrastructure for the real-time internet. The resulting values emphasized openness, bias for action, continual improvement, human-centric technology, dependability, and bold creativity, replacing an initial emphasis on taking the hardest paths with a focus on creative problem-solving. To ensure these values were not just aspirational, Ably integrated them into key processes such as hiring, onboarding, and performance reviews and committed to regular feedback sessions to keep them relevant and lived. This ongoing commitment to values aims to foster a cohesive and dynamic company culture as Ably continues to grow and refine its approach.
Feb 18, 2021 1,970 words in the original blog post.
Designing fault-tolerant systems involves understanding and addressing the nature of failures, especially in distributed systems where failures are expected and can be non-binary. Key to this design is dependability, measured by both availability and reliability, ensuring a service is both accessible and functions as expected. Redundancy plays a crucial role, providing excess capacity to ensure service continuity even in the event of component failures. Stateless services, which operate independently of past interactions, are easier to design for fault tolerance as they can rely on redundant resources for continued availability. In contrast, stateful services, which depend on the continuity of state across interactions, face more complex challenges, requiring mechanisms such as consensus formation and robust state persistence to ensure reliability. The Ably platform exemplifies these principles by employing multiple layers of fault tolerance mechanisms, including stateful role placement and channel persistence, to provide high levels of service availability and reliability. These efforts are supported by engineering practices that address real-world challenges such as resource availability, scalability, and dynamic consensus formation in globally-distributed systems.
Feb 15, 2021 3,669 words in the original blog post.
Event-driven architecture (EDA) is becoming increasingly important in the design of APIs as consumers demand more interactive, immersive, and responsive digital experiences. EDA allows clients to subscribe to events and receive updates in real-time when both parties are online. This approach shifts the complexity from the client to the producer, enabling enterprises to drive fluid user experiences that modern users expect. Event-driven architecture is a recurring theme in Gartner's trends for the 2020s, with predictions that event notifications will form part of over 60% of new digital business solutions and more than half of organizations managing APIs will incorporate mediation of event notifications into their operations.
Feb 09, 2021 2,360 words in the original blog post.