Data-as-a-Product and Data-Contract: An evolutionary approach to data maturity

Using Simon Wardley’s evolution model, I propose a framework for visualizing the maturity of data within a business context, emphasizing the importance of treating data as a product and implementing data contracts to facilitate integration and ensure trust. Ultimately, I suggest that starting with a focus on data-as-a-product is crucial for organizations embarking on their data mesh journey, paving the way for a comprehensive and agile transformation.

Simplifying Complexity: The Journey from WebSockets to HTTP Streams

This article explores the transition from a WebSocket-based implementation to a simpler, more direct stream over HTTP in the context of capturing touch screen inputs on Linux.

It begins by introducing the main theme, encapsulated in the statement Everything is a file is a stream of byte. The need to capture finger positions on a touchscreen by reading /dev/input/events in Linux is initially discussed, followed by a dilemma of transferring this data to a JavaScript client in a browser.

Initially, WebSockets are chosen, leading to a discussion on how frameworks often shape our technological choices and the challenges faced in debugging WebSocket connections. The article then introduces an alternative about sending a stream of bytes over HTTP, drawing a parallel to Linux’s approach to handling devices and files.

Serialization, the process of encoding messages for this stream, is discussed next, highlighting the implementation specifics in GoLang and its native advantages. The final section covers how to receive and decode this stream in JavaScript within a worker thread, and then send the decoded messages to the main thread using post requests. The article concludes by reflecting on the benefits of simplicity in technology, urging readers to reevaluate default choices and consider more straightforward solutions to complex problems.