# Localytics

Join our engineers where we talk about solutions to problems presented by big data and the race for big speed.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Saving Money and Protecting Privacy With Bloom Filters

DevFeed: [Saving Money and Protecting Privacy With Bloom Filters](<https://devfeed.tech/articles/saving-money-and-protecting-privacy-with-bloom-filters-28632.md>)

Original publisher: [Read original article](<https://eng.localytics.com/saving-money-protecting-privacy-with-bloom-filters/>)

Author: Tristan Garwood

Published: 2018-08-27T17:08:17Z

Content type: article

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [DynamoDB](<https://devfeed.tech/topics/dynamodb.md>), [data](<https://devfeed.tech/topics/data.md>), [pii](<https://devfeed.tech/topics/pii.md>), [NoSQL](<https://devfeed.tech/topics/nosql.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Latency](<https://devfeed.tech/topics/latency.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [backend](<https://devfeed.tech/tags/backend.md>), [bloom-filter](<https://devfeed.tech/tags/bloom-filter.md>), [cache](<https://devfeed.tech/tags/cache.md>), [data](<https://devfeed.tech/tags/data.md>), [dynamodb](<https://devfeed.tech/tags/dynamodb.md>), [false-positive](<https://devfeed.tech/tags/false-positive.md>), [filter](<https://devfeed.tech/tags/filter.md>), [gdpr](<https://devfeed.tech/tags/gdpr.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [latency](<https://devfeed.tech/tags/latency.md>), [low-latency](<https://devfeed.tech/tags/low-latency.md>), [memory](<https://devfeed.tech/tags/memory.md>), [native](<https://devfeed.tech/tags/native.md>), [nosql](<https://devfeed.tech/tags/nosql.md>), [pii](<https://devfeed.tech/tags/pii.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [s3](<https://devfeed.tech/tags/s3.md>)

### AI overview

The article explains how Localytics used Bloom filters with DynamoDB, S3, and caching to enforce GDPR opt-out checks in a high-throughput ingestion pipeline. The design reduces unnecessary DynamoDB lookups while preserving verification of possible matches and dropping data from opted-out users.

### Source excerpt

The EU General Data Protection Regulation (GDPR) went into effect on May 25th, 2018 and stipulates that companies processing personally identifiable information (PII) must carry out requests from end users to be 'forgotten' from their systems. Implementing this right to be forgotten (RTBF) for our products means that

## Introducing Exploranda, a set of tools for exploring complex systems.

DevFeed: [Introducing Exploranda, a set of tools for exploring complex systems.](<https://devfeed.tech/articles/introducing-exploranda-a-set-of-tools-for-exploring-complex-systems-28629.md>)

Original publisher: [Read original article](<https://eng.localytics.com/introducing-exploranda-a-set-of-tools-for-exploring-complex-systems/>)

Author: Raphael Luckom

Published: 2018-01-25T18:02:35Z

Content type: article

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [Complex Systems](<https://devfeed.tech/topics/complex-systems.md>), [data](<https://devfeed.tech/topics/data.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [Graphs](<https://devfeed.tech/topics/graphs.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [complex-systems](<https://devfeed.tech/tags/complex-systems.md>), [data](<https://devfeed.tech/tags/data.md>), [exploration](<https://devfeed.tech/tags/exploration.md>), [graphs](<https://devfeed.tech/tags/graphs.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [systems](<https://devfeed.tech/tags/systems.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

The article introduces Exploranda, a tool for exploring complex systems and supporting the early stages of data-driven decision-making. It describes how open-ended investigation differs from established tools such as monitoring, CI, and CD, especially when problems or causes are not obvious.

### Source excerpt

At Localytics, data is central to our mission. One of our core principles is to "lead with data." When I envision that, I often think of an analyst using graphs to make a case for a business decision, or a principal engineer using benchmarks to advocate for a

## Infrastructure As Code With humidifier-reservoir

DevFeed: [Infrastructure As Code With humidifier-reservoir](<https://devfeed.tech/articles/infrastructure-as-code-with-humidifier-reservoir-28628.md>)

Original publisher: [Read original article](<https://eng.localytics.com/infrastructure-as-code-with-humidifier-reservoir/>)

Author: Kevin Deisz

Published: 2017-08-23T20:00:09Z

Content type: tutorial

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [Infrastructure as code](<https://devfeed.tech/topics/infrastructure-as-code.md>), [AWS CloudFormation](<https://devfeed.tech/topics/aws-cloudformation.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Provisioning](<https://devfeed.tech/topics/provisioning.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [aws-cloudformation](<https://devfeed.tech/tags/aws-cloudformation.md>), [build](<https://devfeed.tech/tags/build.md>), [examples](<https://devfeed.tech/tags/examples.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>)

### AI overview

Localytics introduces humidifier-reservoir, an open-source tool for building AWS infrastructure with simple configuration files. The article explains its relationship to humidifier, AWS CloudFormation, and other infrastructure tools, and describes how configuration can map resource attributes and custom attributes for deployment.

### Source excerpt

A little more than a year ago we made the first commit to the gem that eventually became humidifier. It's evolved quite a bit in the last year, including integrating AWS' resource specification which had the side-effect of greatly stabilizing the API. Here at Localytics, we&

## Connecting to Snowflake with Ruby on Rails

DevFeed: [Connecting to Snowflake with Ruby on Rails](<https://devfeed.tech/articles/connecting-to-snowflake-with-ruby-on-rails-28624.md>)

Original publisher: [Read original article](<https://eng.localytics.com/connecting-to-snowflake-with-ruby-on-rails/>)

Author: Kevin Deisz

Published: 2017-06-09T14:53:09Z

Content type: tutorial

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [Ruby on Rails](<https://devfeed.tech/topics/ruby-on-rails.md>), [API](<https://devfeed.tech/topics/api.md>), [data-processing](<https://devfeed.tech/topics/data-processing.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>)

Tags: [activerecord](<https://devfeed.tech/tags/activerecord.md>), [adapter](<https://devfeed.tech/tags/adapter.md>), [api](<https://devfeed.tech/tags/api.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [data](<https://devfeed.tech/tags/data.md>), [data-processing](<https://devfeed.tech/tags/data-processing.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [ruby-on-rails](<https://devfeed.tech/tags/ruby-on-rails.md>), [snowflake](<https://devfeed.tech/tags/snowflake.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

A tutorial on connecting a Ruby on Rails API to the Snowflake data warehouse using unixODBC, Snowflake's ODBC driver, and an ActiveRecord adapter. It explains ODBC, DSN configuration, installation, and debugging.

### Source excerpt

At Localytics, one of the tools we use for data processing is the Snowflake data warehouse. We connect to Snowflake in a couple different ways, but our main data retrieval application is a Ruby on Rails API. To accomplish this we use a combination of unixODBC (an open-source implementation

## Cogito: An Open-Source Abstraction for AWS IAM Policies

DevFeed: [Cogito: An Open-Source Abstraction for AWS IAM Policies](<https://devfeed.tech/articles/cogito-adding-i-think-to-iam-28623.md>)

Original publisher: [Read original article](<https://eng.localytics.com/cogito/>)

Author: Kevin Deisz

Published: 2017-06-07T16:43:12Z

Content type: release

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [AWS IAM](<https://devfeed.tech/topics/aws-iam.md>), [IAM](<https://devfeed.tech/topics/iam.md>), [JSON](<https://devfeed.tech/topics/json.md>), [C](<https://devfeed.tech/topics/c.md>), [AWS CloudFormation](<https://devfeed.tech/topics/aws-cloudformation.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [aws-iam](<https://devfeed.tech/tags/aws-iam.md>), [c](<https://devfeed.tech/tags/c.md>), [cloudformation](<https://devfeed.tech/tags/cloudformation.md>), [iam](<https://devfeed.tech/tags/iam.md>), [identity-and-access-management](<https://devfeed.tech/tags/identity-and-access-management.md>), [json](<https://devfeed.tech/tags/json.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [permissions](<https://devfeed.tech/tags/permissions.md>), [policy](<https://devfeed.tech/tags/policy.md>), [repositories](<https://devfeed.tech/tags/repositories.md>), [security](<https://devfeed.tech/tags/security.md>), [syntax-highlighting](<https://devfeed.tech/tags/syntax-highlighting.md>)

### AI overview

The article announces Cogito, an open-source abstraction for AWS IAM policy syntax. It introduces a human-readable syntax, a small C library called libcogito for translating between Cogito syntax and AWS JSON policies, local validation, source-control integration, editor syntax highlighting, and CloudFormation integration.

### Source excerpt

Today we are open-sourcing Cogito, an abstraction of AWS IAM syntax. IAM (Identity and Access Management) is AWS's module that dictates the ability of various users and resources to mutate other resources within the AWS ecosystem. Permissions are described through a JSON-structured policy document that lives

## Faster Snowflake Queries through Clustering

DevFeed: [Faster Snowflake Queries through Clustering](<https://devfeed.tech/articles/faster-snowflake-queries-through-clustering-28626.md>)

Original publisher: [Read original article](<https://eng.localytics.com/faster-snowflake-queries-through-clustering/>)

Author: Michal Klos

Published: 2017-03-13T14:17:01Z

Content type: article

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [data-processing](<https://devfeed.tech/topics/data-processing.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>), [Amazon Redshift](<https://devfeed.tech/topics/amazon-redshift.md>)

Tags: [clustering](<https://devfeed.tech/tags/clustering.md>), [data-processing](<https://devfeed.tech/tags/data-processing.md>), [database](<https://devfeed.tech/tags/database.md>), [databases](<https://devfeed.tech/tags/databases.md>), [join](<https://devfeed.tech/tags/join.md>), [mpp](<https://devfeed.tech/tags/mpp.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [partitioning](<https://devfeed.tech/tags/partitioning.md>), [performance](<https://devfeed.tech/tags/performance.md>), [redshift](<https://devfeed.tech/tags/redshift.md>), [s3](<https://devfeed.tech/tags/s3.md>), [scale](<https://devfeed.tech/tags/scale.md>), [snowflake](<https://devfeed.tech/tags/snowflake.md>), [time-series](<https://devfeed.tech/tags/time-series.md>)

### AI overview

This article explains how Snowflake clustering and re-clustering can improve query performance by helping the query engine prune unneeded data. It discusses choosing cluster keys, comparisons with MPP database techniques, and the caveat that naturally ordered time-series data may not need clustering.

### Source excerpt

At Localytics we have petabytes of data that needs to be served at low latencies and we use Snowflake in our mix of data processing technologies. Snowflake, like many other MPP databases, has a way of partitioning data to optimize read-time performance by allowing the query engine to prune

## ODBC and writing your own ActiveRecord adapter

DevFeed: [ODBC and writing your own ActiveRecord adapter](<https://devfeed.tech/articles/odbc-and-writing-your-own-activerecord-adapter-28630.md>)

Original publisher: [Read original article](<https://eng.localytics.com/odbc-and-writing-your-own-activerecord-adapter/>)

Author: Kevin Deisz

Published: 2017-03-07T22:08:02Z

Content type: article

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [Ruby on Rails](<https://devfeed.tech/topics/ruby-on-rails.md>), [Rails](<https://devfeed.tech/topics/rails.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [activerecord](<https://devfeed.tech/tags/activerecord.md>), [api](<https://devfeed.tech/tags/api.md>), [database](<https://devfeed.tech/tags/database.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [ruby-on-rails](<https://devfeed.tech/tags/ruby-on-rails.md>)

### AI overview

The article describes Localytics' open-source ODBC adapter for ActiveRecord, enabling Ruby on Rails applications to communicate with ODBC-compliant databases. It explains the adapter's role in a Rails API upgrade and recounts its development from an older fork, including support for multiple Rails branches and database environments. The supplied text ends before the account is complete.

### Source excerpt

Today we are open-sourcing our ODBC adapter for ActiveRecord, which allows Ruby on Rails applications to communicate with ODBC-compliant databases. The impetus for this work was an effort to update one of our APIs to run with the latest Rails and ruby. Along the way we released Rails

## Why the Team Transitioned Its Frontend from Angular to React

DevFeed: [Why the Team Transitioned Its Frontend from Angular to React](<https://devfeed.tech/articles/reacting-to-change-28631.md>)

Original publisher: [Read original article](<https://eng.localytics.com/reacting-to-change/>)

Author: Nate Tenczar

Published: 2017-02-02T20:33:59Z

Content type: opinion

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [React](<https://devfeed.tech/topics/react.md>), [Angular](<https://devfeed.tech/topics/angular.md>), [frontend development](<https://devfeed.tech/topics/frontend-development.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [frameworks](<https://devfeed.tech/tags/frameworks.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [react](<https://devfeed.tech/tags/react.md>)

### AI overview

The article explains how the team evaluated its frontend development environment and decided to transition from Angular to React. It cites React's growing user base, state-management solutions, and existing internal use, while emphasizing that the opinions reflect the team's specific use case.

### Source excerpt

If you sit quietly enough while reading this article you'll hear a sound. It's the faint tapping of fingers on a keyboard, off in the distance in parts unknown. Those self-assured fingers are putting together yet another think piece on JavaScript in this--the

## Best Practices and Common Mistakes with Travis CI

DevFeed: [Best Practices and Common Mistakes with Travis CI](<https://devfeed.tech/articles/best-practices-and-common-mistakes-with-travis-ci-28622.md>)

Original publisher: [Read original article](<https://eng.localytics.com/best-practices-and-common-mistakes-with-travis-ci/>)

Author: Kevin Deisz

Published: 2017-01-10T13:46:39Z

Content type: tutorial

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [Travis CI](<https://devfeed.tech/topics/travis-ci.md>), [Continuous integration](<https://devfeed.tech/topics/continuous-integration.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [build performance](<https://devfeed.tech/topics/build-performance.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [github](<https://devfeed.tech/tags/github.md>), [parallelism](<https://devfeed.tech/tags/parallelism.md>), [speed](<https://devfeed.tech/tags/speed.md>), [testing](<https://devfeed.tech/tags/testing.md>), [travis-ci](<https://devfeed.tech/tags/travis-ci.md>)

### AI overview

This article presents five internal best practices for using Travis CI, focusing on continuous integration, efficient testing, and reducing build time. It explains how Travis CI integrates with GitHub and supports configurable build environments, build matrices, and test parallelism.

### Source excerpt

What is Travis At Localytics, we've worked hard to ensure that all of our services are built and deployed using our own internal best practices. One of those core best practices is that the service in question is using continuous integration (CI). CI greatly reduces the amount of

## Reducing DynamoDB Storage Costs for High-Volume Datapoint Deduplication

DevFeed: [Reducing DynamoDB Storage Costs for High-Volume Datapoint Deduplication](<https://devfeed.tech/articles/tweaking-dynamodb-tables-for-fun-and-profit-28635.md>)

Original publisher: [Read original article](<https://eng.localytics.com/tweaking-dynamodb-tables/>)

Author: Joanna Solmon

Published: 2017-01-04T14:45:00Z

Content type: tutorial

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [DynamoDB](<https://devfeed.tech/topics/dynamodb.md>), [amazon](<https://devfeed.tech/topics/amazon.md>), [Database](<https://devfeed.tech/topics/database.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>)

Tags: [amazon](<https://devfeed.tech/tags/amazon.md>), [aws](<https://devfeed.tech/tags/aws.md>), [cost](<https://devfeed.tech/tags/cost.md>), [data](<https://devfeed.tech/tags/data.md>), [database](<https://devfeed.tech/tags/database.md>), [dedupe](<https://devfeed.tech/tags/dedupe.md>), [devices](<https://devfeed.tech/tags/devices.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [dynamodb](<https://devfeed.tech/tags/dynamodb.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [ops](<https://devfeed.tech/tags/ops.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

The article describes how Localytics used DynamoDB to deduplicate billions of daily datapoints and examined schema changes to reduce storage costs. It discusses duplicate UUIDs, a 30-day deduplication history, and the limitations of a naive schema.

### Source excerpt

Amazon's DynamoDB is a great technology: it's easy to set up and provides all the benefits of an infinitely scalable distributed database without the operational overhead. Unfortunately, DynamoDB can also be very expensive for high volume, high throughput storage. This post will show how we were

## Exploring CLI Best Practices

DevFeed: [Exploring CLI Best Practices](<https://devfeed.tech/articles/exploring-cli-best-practices-28625.md>)

Original publisher: [Read original article](<https://eng.localytics.com/exploring-cli-best-practices/>)

Author: Kevin Deisz

Published: 2016-10-11T19:25:23Z

Content type: tutorial

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Thor](<https://devfeed.tech/topics/thor.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [cli](<https://devfeed.tech/tags/cli.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [thor](<https://devfeed.tech/tags/thor.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

Localytics describes best practices for designing intuitive command-line interfaces, based on its experience refining internal Ruby CLIs built with Thor. The recommendations include providing sensible defaults, offering readable options with short aliases, following common command-line conventions, and allowing users to identify files explicitly.

### Source excerpt

At Localytics we build command line interfaces that manage our infrastructure and processes. This is our list of best practices that we've learned.

## Six Recipes for Software Managers

DevFeed: [Six Recipes for Software Managers](<https://devfeed.tech/articles/six-recipes-for-software-managers-28633.md>)

Original publisher: [Read original article](<https://eng.localytics.com/six-recipes-for-software-managers/>)

Author: Adam Buggia

Published: 2016-09-23T19:55:07Z

Content type: tutorial

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [engineering-culture](<https://devfeed.tech/topics/engineering-culture.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [email](<https://devfeed.tech/tags/email.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [engineering-culture](<https://devfeed.tech/tags/engineering-culture.md>), [meetings](<https://devfeed.tech/tags/meetings.md>), [post](<https://devfeed.tech/tags/post.md>), [software](<https://devfeed.tech/tags/software.md>), [survey](<https://devfeed.tech/tags/survey.md>), [team](<https://devfeed.tech/tags/team.md>)

### AI overview

Localytics engineering managers share practical practices for leading software teams, including weekly one-on-one meetings, preparation, employee-led discussion, action-item follow-through, and periodic surveys.

### Source excerpt

The engineering managers at Localytics have been working together for over a year, and through ups and downs, we've grown and learned a lot as a team. The goal of this post is to share some of the lessons we've learned with the community. Some of

## Localytics' Process for Responding to Service Incidents

DevFeed: [Localytics' Process for Responding to Service Incidents](<https://devfeed.tech/articles/when-things-go-wrong-28636.md>)

Original publisher: [Read original article](<https://eng.localytics.com/when-things-go-wrong/>)

Author: Tony Wieczorek

Published: 2016-09-13T18:24:39Z

Content type: article

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [incident](<https://devfeed.tech/topics/incident.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Slack](<https://devfeed.tech/topics/slack.md>), [realtime](<https://devfeed.tech/topics/realtime.md>)

Tags: [downtime](<https://devfeed.tech/tags/downtime.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [incident](<https://devfeed.tech/tags/incident.md>), [pagerduty](<https://devfeed.tech/tags/pagerduty.md>), [postmortem](<https://devfeed.tech/tags/postmortem.md>), [realtime](<https://devfeed.tech/tags/realtime.md>), [slack](<https://devfeed.tech/tags/slack.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

Localytics describes its process for responding to service degradations and downtime. The process uses Slack and PagerDuty to coordinate triage, debugging, incident follow-up, postmortems, and communication with company leaders and customers.

### Source excerpt

We believe the highest performing engineering teams have a process to identify, triage, fix and learn from service degradations and downtime. At Localytics, we build highly available and scalable systems, and part of the key to our success is learning from failures. One way we foster a learning culture is

## Humidifier - CloudFormation made easier

DevFeed: [Humidifier - CloudFormation made easier](<https://devfeed.tech/articles/humidifier-cloudformation-made-easier-28627.md>)

Original publisher: [Read original article](<https://eng.localytics.com/humidifier-cloudformation-made-easier/>)

Author: Kevin Deisz

Published: 2016-06-20T17:19:11Z

Content type: release

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [AWS CloudFormation](<https://devfeed.tech/topics/aws-cloudformation.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Provisioning](<https://devfeed.tech/topics/provisioning.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Terraform](<https://devfeed.tech/topics/terraform.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [aws-cloudformation](<https://devfeed.tech/tags/aws-cloudformation.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [json](<https://devfeed.tech/tags/json.md>), [provisioning](<https://devfeed.tech/tags/provisioning.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [terraform](<https://devfeed.tech/tags/terraform.md>)

### AI overview

Localytics open-sources Humidifier, a Ruby gem that generates programmatic objects for AWS CloudFormation resources. It abstracts JSON manipulation, generates Ruby classes from CloudFormation specifications, and supports maintaining and deploying CloudFormation stacks and change sets.

### Source excerpt

Today we are open-sourcing Humidifier - one of the tools that we use internally to manage infrastructure on Amazon Web Services (AWS) at Localytics. This Ruby gem allows you to programmatically generate domain objects that represent the AWS CloudFormation (CFN) resources you want, handling the details of JSON manipulation under

## Testing AWS Scala Microservices

DevFeed: [Testing AWS Scala Microservices](<https://devfeed.tech/articles/testing-aws-scala-microservices-28634.md>)

Original publisher: [Read original article](<https://eng.localytics.com/testing-aws-scala-microservices/>)

Author: Ben Darfler

Published: 2016-04-27T11:56:52Z

Content type: article

Language: en

Sources: [Localytics](<https://devfeed.tech/sources/localytics.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [Amazon Simple Queue Service (SQS)](<https://devfeed.tech/topics/amazon-simple-queue-service-sqs.md>), [DynamoDB](<https://devfeed.tech/topics/dynamodb.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [aws](<https://devfeed.tech/tags/aws.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [dynamodb](<https://devfeed.tech/tags/dynamodb.md>), [hackathon](<https://devfeed.tech/tags/hackathon.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [microservices-architecture](<https://devfeed.tech/tags/microservices-architecture.md>), [s3](<https://devfeed.tech/tags/s3.md>), [scala](<https://devfeed.tech/tags/scala.md>), [slack](<https://devfeed.tech/tags/slack.md>), [sqs](<https://devfeed.tech/tags/sqs.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article describes how Localytics addressed slow, fragile, and overused end-to-end tests in an AWS-based Scala microservices architecture. It introduces three open-sourced SBT plugins--sbt-s3, sbt-dynamodb, and sbt-sqs--and explains the testing problems that motivated them.

### Source excerpt

In January and February of this year we open sourced three SBT plugins that have had a huge impact on our ability to test our AWS based Scala microservices architecture: sbt-s3 sbt-dynamodb sbt-sqs This is our story. Stop me if you've heard this one before.