Event-Driven Architectures with AWS DynamoDB Streams

November 2nd, 2018 | Greg Straw | Development,Engineering

We’ve been working with AWS DynamoDB Streams on our customer projects, and we’ve found it to be a really powerful solution for creating event-driven pipelines. DynamoDB is one of the more recent features added to DynamoDB and can help address some of the common challenges when migrating from a relational schema to DynamoDB.

What are DynamoDB Streams?

If you don’t know the basics around DynamoDB, there are many good articles, blogs, and of course the AWS Documentation. I’d like to focus on some of the use cases, and the benefits of using one of its more recent features: DynamoDB Streams.

DynamoDB Streams enable you to trigger downstream actions based on the activity occurring in a DynamoDB table. Every time an item is added, changed, or removed, a stream event is triggered by capturing that change. This feature is very powerful when integrated with other AWS components.

When streams are enabled for a given table, AWS stands up a new service endpoint for making API requests specific to stream events. You can select from four options for the stream events:

  1. KEYS_ONLY – the key attributes of the changed item
  2. NEW_IMAGE – what the item changed-to
  3. OLD_IMAGE – what the item changed from
  4. NEW_AND_OLD_IMAGES

Read more

Interusability: IoT User Experience Beyond the Level of a Single Device

September 7th, 2018 | Brian Tol | Engineering,IoT Notes,SpinDance

In 2014, publisher and technology guru Tim O’Reilly gave a speech entitled “Software Above the Level of an Individual Device.” In it, he described the foundational pattern that IoT enables: instead of individual computers, we’re building a network of devices that “make it possible to completely rethink how we organize work, play and society itself.”

Implicit in O’Reilly’s argument is the need for new ways of interfacing with these device networks to unlock their potential: What we need are user experiences that go beyond the level of a single device.

This multi-device experience design is called interusability, and it is central to building successful IoT products.

What is Interusability?

The term “interusability” was coined in 2005 by Charles Denis and Laurent Karsenty. They argued that conventional UX design was ill-equipped to handle multi-device interfaces. The discussion continued in 2010 when a group of researchers published a practical framework for interusability. In 2015, O’Reilly Media launched Designing Connected Products, which we at SpinDance consider the current definitive work on the subject.

If you don’t have time for articles or books, Claire Rowland’s 49 slide presentation on the subject is worth checking out. In particular, this chart is a good guide for thinking about where interusability fits in the larger UX/software world:

So what is interusability?…

Read more

Using Flexible Slots to Design Alexa Skills

March 28th, 2017 | Conor Livingston | Engineering,Uncategorized

echo_dot
Voice Interfaces For IoT

The Amazon Echo is a breakthrough product. It is the first consumer product with a voice-centric interaction model, and it has really caught on. The number of skills (think apps… more on this below) available in the Alexa Skills store has increased 5X between Q2 and Q4 of 2016, and Amazon Echo sales have more than doubled between 2015 and 2016, from 2.4 million to 5.2 million.

SpinDance recently created an Alexa skill that enables consumers to control Whirlpool and Jenn-Air home appliances with their voices. Along the way we discovered a better way to design skills, resulting in less code and increased flexibility. Read on to learn how you can follow suit.

About Alexa Skills

Alexa Skills are still relatively new, so before we explain the improved design methodology, here’s some background information on Amazon Alxa skills, and the traditional way of designing them.

It might help to think of Alexa skills as mobile apps. Just like mobile apps add features to mobile phones, Alexa skills add features to Alexa-powered devices, like the Echo, Echo Dot, or even a Kindle tablet.

Users can browse for skills in Amazon’s skill store, enable them, and then interact with their device by talking to it. Here are some examples:

  • “Alexa,

Read more

Alexa Integration

Whirlpool Introduces Alexa Integration and More At CES 2017

January 10th, 2017 | Brian Tol | Engineering,News

The Consumer Electronics Show just wrapped up, and, as usual, there is a massive amount of IoT news to sift through. There were thousands of products announced, and miles of press coverage to read. We’ve been closely watching CES back at SpinDance HQ, and in the next couple of weeks, we’ll be sharing our thoughts on the winners and losers, and what CES says about where IoT is heading.

But today, we wanted to focus on one of our favorite clients, Whirlpool, and highlight some of the announcements they made last week. We’ve been working hard to support their IoT initiatives, and we wanted to discuss some of the technology behind the announcements.

Alexa Integration

Amazon’s voice assistant Alexa was huge presence at CES this year, and Whirlpool announced they are integrating 20 appliances with the service in 2017. It is a well-architected system: Amazon does the heavy lifting of voice UI and provides a clean API to developers. We’ll be blogging about Alexa later this month, and our approach to integrating major appliances, IoT platforms and voice services. We’ve been testing this in house for a while, and we think consumers are going to love it.

Dash Replenishment For the All-One Washer Dryer Combo

An all-in-one washer/dryer combo? Sign us up! Beyond the obvious labor saving benefits, this appliance includes integration with Amazon’s Dash Replenishment service….

Read more