Smithy
AWS Labs has a lot of open source code up on GitHub. In this post, we’re taking a look at AWS Data Wrangler. This project provides a smoother interface between pandas DataFrames and various AWS Cloud data services.
I call out a few more details in the Twitter thread below…
this project “defines and generates clients, services, and documentation for any protocol” which is a big claim
let’s see what’s actually here…
☁️ #cloud #devops
the previous thread is up at https://markn.ca/2021/aws-data-wrangler/
☁️ #cloud #devops
ok, so this is DSL-type project. the 4 main features:
- protocol-agnostic
- codify & enforce API governance
- designed to evolve
- resource based
☁️ #cloud #devops
the project uses the term IDL or interface description language…so not quite a DSL
☁️ #cloud #devops
AWS uses Smithy to describe their services, metadata, and capabilities in a programmatic way
☁️ #cloud #devops
☁️ #cloud #devops
☁️ #cloud #devops
- resources
- operations
- shapes
resources & operations are straightforward but the “shape” concept deserves a closer look
☁️ #cloud #devops
shapes can be simple, aggregate, or a service
https://awslabs.github.io/smithy/1.0/spec/core/model.html#shapes
☁️ #cloud #devops
here’s a complete example from the docs: https://awslabs.github.io/smithy/quickstart.html#complete-example
☁️ #cloud #devops
at the very least, you’ll learn a lot about IDLs from @awscloud’s experience
/ ☁️ #cloud #devops