Step Functions allow you to build pipelines involving one or more amazon, or external service. Some examples of this are:
complex customer on boarding processes jobs which provision resources then send a welcome email billing jobs where you may need wait for payment authorisation provisioning users and setup of any resources each user may need pipeline In software engineering, a pipeline consists of a chain of processing elements (processes, threads, coroutines, functions, etc.
Background jobs form the backbone of a lot of modern applications, they are used to perform a range of asynchronous tasks, from image processing through to order processing, fulfillment and shipping. Wherever there is a need to dispatch some sort of task, then monitor or wait for it’s result.
In the serverless space AWS Step Functions play a similar role to projects such as delayed job or resque in ruby, celery in python, but with the following differences:
Over the last few months I have been working on a project which uses DynamoDB almost exclusively for persistence, this has been a big challenge for everyone on the team. As a developer, most of us are comfortable using a Relational database management system (RDBMS) systems, so the move to a primitive key value store has been fun, but we have learnt a lot. To try and capture some of these learnings I have written this article, hopefully it will help those who embark on a similar journey.
Lately I have been using apex to build a side project, this tool stream lines building and deploying serverless applications using AWS Lambda. While working on this project I have helped others get started with golang at the same time as apex.
My general strategy for building apex applications is to build a standalone version of the functionality on my machine, typically in a way which makes the code reusable, then I import and use that in apex.
I have been helping a few people get up and running with golang lately and thought it was about time to post a brief getting started. This is primarily for OSX as this is what most of my colleagues use.
Firstly you will need to install golang and setup your GOPATH. If your on OSX you can just install homebrew and use it to install golang.
brew install go Then in OSX I append a couple of lines to my $HOME/.
This describes how to develop front-end projects with webpack inside a docker container using boot2docker on OSX.
So firstly why would we even do this? The main aim of using docker for development is:
Portable build environment Simplified on-boarding of new developers Consistency between development and continuous integration (CI) In summary tools like docker make it very easy to package up a development environment and share it among a team of developers.