Welcome back to the Node.js reference architecture series. This post will serve as a wrap-up for the Node.js series and offer a look at what is coming next from our reference architecture team.
Catch up on the rest of the series:
- Part 1: Overview of the Node.js reference architecture
- Part 2: Logging in Node.js
- Part 3: Code consistency in Node.js
- Part 4: GraphQL in Node.js
- Part 5: Building good containers
- Part 6: Choosing web frameworks
- Part 7: Code coverage
- Part 8: TypeScript
- Part 9: Securing Node.js applications
- Part 10: Accessibility
- Part 11: Typical development workflows
- Part 12: npm development
- Part 13: Problem determination
- Part 14: Testing
- Part 15: Transaction handling
- Part 16: Load balancing, threading, and scaling
- Part 17: CI/CD
- Part 18: Wrap-up
Where we started
When we started this journey more than two years ago, we wanted a way to present the team's opinion on what components our customers and internal teams should use when building Node.js applications and guidance for how to be successful in production with those components.
We also had these four points in mind during our discussions:
- Where possible, the opinion is based on what we've used internally and in our customer engagements.
- The components specified will be our first priority for our contributions to open source projects in the JavaScript ecosystem.
- Due to the above, these are the components the team is best positioned when working with internal and external customers. However, we do not include formal support for these components in any of our support offerings unless specifically identified in those offerings.
- The recommended components may change over time as technologies and approaches change.
What we covered
Our goal was to cover a wide range of components from the team's experiences. We were able to accomplish this succinctly by breaking them up into 3 sections.
Functional components
These were the things that make a Node.js application a Node.js application. Below are links to those article in the series that are classified as Functional Components.
- GraphQL in Node.js
- Choosing web frameworks
- REST API development
- Load balancing, threading, and scaling
- Transaction handling
Development
These are things that a developer should be thinking about while developing their Node.js application. Below are links to those article in the series that are classified as Development.
- Code consistency in Node.js
- Building good containers
- Code coverage
- Typescript
- Securing Node.js applications
- Accessibility
- Typical development workflows
- npm development
- Testing
- CI/CD
Operations
These are things that a developer will be using and monitoring when their application is deployed and being used. Below are links to those article in the series that are classified as Operations.
At the beginning of November I was lucky enough to give a talk about what we have done in the Node.js reference architecture at the Open Source in Finance Forum in New York City. You can view that talk here: Node.js Reference Architecture - Luke Holmquist, Red Hat
What's next for the Node.js team
Now that we have "completed" the Node.js reference architecture, which was mostly focused on the back end, we are now starting to focus on the front end, with the web reference architecture.
We plan on following the same set of guidelines that we came up with for the Node.js/back-end version. We also plan to use the same top-level headings; you can see those here.
Red Hat and Node.js
While we are working on the web reference architecture, we invite you to visit the Node.js reference architecture repository on GitHub, where you can view our work.
To learn more about what Red Hat is up to on the Node.js front, check out our Node.js topic page.
Last updated: August 1, 2024