Skip to content

Instantly share code, notes, and snippets.

@anatomic
Last active February 1, 2018 16:32
Show Gist options
  • Save anatomic/2f66aa254c322f0c91e07d648487a2a9 to your computer and use it in GitHub Desktop.
Save anatomic/2f66aa254c322f0c91e07d648487a2a9 to your computer and use it in GitHub Desktop.

Abstract Title

Production Ready Microservices Using Node.js

Abstract Topic

Applications

Submission Type

Hop Workshop (2hr)

Abstract Summary (up to 300 words)

Whether you consider it a "grown up" functional language or not, often there are very good reasons for companies to adopt JavaScript and Node.js as a language and runtime. For this reason, it's important to equip developers with the best tools and knowledge to make their applications reliable and performant. For an increasing number of developers, this means adopting functional programming principals in their everyday work.

The internet is well stocked with blog posts and tutorials explaining functional programming techniques in JavaScript, however, they often stop short of covering some of the critical pieces involved in making these applications production ready. This workshop takes attendees through the process of writing a basic HTTP API, managing external configuration, adding circuit breakers to protect against downstream failures, making metrics available to systems (like Prometheus), effective logging and finally tracing requests through downstream systems so we can see how different services have been involved in constructing a response.

Throughout the workshop, attendees will be learning how different aspects of functional programming apply to JavaScript. The application to be built will be based around the principles of the 12-factor methodology, making use of ADTs such as Reader and Writer to manage configuration and logging of key metrics as well as building a lightweight HTTP client using the Future Monad.

Moving beyond the application code, the final part of the workshop will focus on how we might design systems based around the programming techniques covered. It will cover how APIs can be composed from many smaller parts and how tools such as Docker and Kubernetes and platforms like Zeit's Now can be leveraged to enable developers to quickly deploy their applications in a scalable manner.

Content Relevency (up to 100 words)

The workshop is designed to help developers fully embrace functional programming whilst ensuring their applications are operationally ready for deployment. It will go beyond the scope of typical tutorials to cover the non-functional requirements which are critical when running reliable and scalable applications.

Exercises will be structured to ensure the content is widely applicable for development teams so whether their applications are deployed to a VM, a container platform like Kubernetes or even a function-as-a-service platform like AWS Lambda, attendees will find value in the topics covered.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment