Artifact Repository Management
At travel audience we design, implement, run and maintain loads of software pieces. For instance, we have apps that consume, process and generate millions of messages per second, where minimalism is key to achieve low-latency, high-throughput and high-availability. They are written in compiled languages such as Go and are usually packed as containers so to make it easier to scale the number of instances needed at a certain time. On the other end of the spectrum, we also have apps that process terabytes of data per day, sometimes in near-realtime, sometimes within a few hours or days span. These apps are usually packed as Python, Java or Scala archives that are to be scheduled as jobs into a batch and/or stream processing engine.
Given how heterogeneous our apps and deployment environments look like, we quickly realized we would need to be able to store, catalog and distribute our artifacts, that when stitched together form the fabric of TA. The hunt for a repository manager solution began and we want to tell your more about our research and outcomes in the following article.