# midwayjs/midway

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/midwayjs-midway).**

7,722 stars · 588 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/midwayjs/midway
- Homepage: https://www.midwayjs.org/
- awesome-repositories: https://awesome-repositories.com/repository/midwayjs-midway.md

## Description

Midway is a suite of backend frameworks for Node.js designed to build enterprise microservices and full-stack applications. It centers on a dependency injection architecture using an inversion-of-control container and decorators to organize complex business logic and maintainable server-side structures.

The framework provides multi-protocol support for HTTP, gRPC, and WebSockets, allowing a single environment to handle diverse service-to-service networking requirements. It also includes a multi-runtime adapter layer that enables applications to be deployed across traditional containers and various serverless cloud platforms.

Additional capabilities include a component-based plugin system for modular extensions, a middleware execution pipeline for request processing, and tools for unified API connectivity between frontend interfaces and backend logic. The system also incorporates request data validation and standardized error handling.

## Tags

### Data & Databases

- [Service Structuring Patterns](https://awesome-repositories.com/f/data-databases/enterprise-data-services/service-structuring-patterns.md) — Offers a comprehensive framework for organizing enterprise microservices using dependency injection and metadata decorators. ([source](https://github.com/midwayjs/midway#readme))

### Software Engineering & Architecture

- [Node.js Microservices Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/node-js-microservices-frameworks.md) — Provides a structured framework specifically designed to implement enterprise microservices architectures using the Node.js runtime.
- [Dependency Injection Containers](https://awesome-repositories.com/f/software-engineering-architecture/dependency-injection-containers.md) — Centers on a dependency injection architecture to decouple object creation from usage.
- [Dependency Injection Web Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/dependency-injection-web-frameworks.md) — Uses an inversion-of-control container and decorators to organize enterprise-grade web applications and microservices.
- [Inversion-of-Control Containers](https://awesome-repositories.com/f/software-engineering-architecture/inversion-of-control-containers.md) — Includes an inversion-of-control container to manage object lifecycles and decouple component dependencies.
- [Decorator-Based](https://awesome-repositories.com/f/software-engineering-architecture/metadata-attachments/decorator-based.md) — Uses TypeScript decorators to attach configuration and routing metadata to classes for automated discovery.
- [Modular Plugin Extensions](https://awesome-repositories.com/f/software-engineering-architecture/modular-plugin-extensions.md) — Implements a component-based plugin system for integrating third-party add-ons to extend core framework functionality. ([source](https://github.com/midwayjs/midway#readme))
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures.md) — Features a plugin-based architecture that extends core functionality through isolated, registerable modules.

### Web Development

- [Full-Stack Frameworks](https://awesome-repositories.com/f/web-development/full-stack-frameworks.md) — Offers an integrated environment for building complete web applications that bridges frontend interfaces with backend logic.
- [Multi-Protocol Backend Frameworks](https://awesome-repositories.com/f/web-development/multi-protocol-backend-frameworks.md) — Ships a backend framework that natively supports multiple communication standards including HTTP, gRPC, and WebSockets.
- [Service Middleware Pipelines](https://awesome-repositories.com/f/web-development/request-middleware-pipelines/service-middleware-pipelines.md) — Utilizes service middleware pipelines to process requests through a sequential chain of interceptors.
- [Ordered Middleware Pipelines](https://awesome-repositories.com/f/web-development/request-middleware-pipelines/service-middleware-pipelines/ordered-middleware-pipelines.md) — Implements ordered middleware pipelines to manage cross-cutting concerns like authentication and logging. ([source](https://github.com/midwayjs/midway/tree/v4-next/tutorial))
- [Route Handlers](https://awesome-repositories.com/f/web-development/route-handlers.md) — Implements route handlers that map incoming network traffic to specific business logic controllers. ([source](https://github.com/midwayjs/midway#readme))
- [Serverless Node.js Frameworks](https://awesome-repositories.com/f/web-development/serverless-node-js-frameworks.md) — Provides a specialized framework for developing Node.js applications optimized for serverless cloud platforms.
- [Request Body Validations](https://awesome-repositories.com/f/web-development/backend-development/request-response-handling/request-body-validations.md) — Ships systems for mapping and validating incoming request payloads against typed structures. ([source](https://github.com/midwayjs/midway/tree/v4-next/tutorial))
- [Full-Stack Integrations](https://awesome-repositories.com/f/web-development/full-stack-integrations.md) — Facilitates full-stack integration by connecting frontend interfaces directly to backend logic.
- [Standard HTTP Error Responses](https://awesome-repositories.com/f/web-development/http-request-response-object-layers/standard-http-error-responses.md) — Provides standardized HTTP error responses to ensure a consistent user experience across the API. ([source](https://github.com/midwayjs/midway/tree/v4-next/tutorial))

### Development Tools & Productivity

- [Unified Full-Stack Workflows](https://awesome-repositories.com/f/development-tools-productivity/unified-full-stack-workflows.md) — Merges frontend and backend development into a single workflow that allows calling server functions without manual API definitions. ([source](https://github.com/midwayjs/midway#readme))

### DevOps & Infrastructure

- [Runtime Agnostic Deployments](https://awesome-repositories.com/f/devops-infrastructure/cloud-deployment/cloud-agnostic-containerization/runtime-agnostic-deployments.md) — Allows applications to be hosted across traditional servers, containers, and various serverless cloud platforms. ([source](https://github.com/midwayjs/midway#readme))
- [Environment Configuration Management](https://awesome-repositories.com/f/devops-infrastructure/deployment-management/deployment-configuration/environment-configuration-management.md) — Provides mechanisms for defining service behavior using environment variables and configuration files across different deployment stages. ([source](https://github.com/midwayjs/midway/tree/v4-next/tutorial))
- [Runtime Adapters](https://awesome-repositories.com/f/devops-infrastructure/runtime-agnostic-deployment-tools/runtime-adapters.md) — Provides a runtime adapter layer that abstracts deployment targets across serverless and container environments.

### Networking & Communication

- [Full-Stack Function Connectivity](https://awesome-repositories.com/f/networking-communication/client-connectivity-management/unified-connection-interfaces/full-stack-function-connectivity.md) — Connects backend functions directly to frontend frameworks to simplify data movement and eliminate manual API definitions. ([source](https://github.com/midwayjs/midway#readme))
- [Protocol-Agnostic Proxies](https://awesome-repositories.com/f/networking-communication/proxy-protocols/protocol-agnostic-proxies.md) — Implements a protocol-agnostic dispatch mechanism to unify diverse protocols like HTTP and gRPC.
- [Multi-Protocol Gateways](https://awesome-repositories.com/f/networking-communication/websocket-services/multi-protocol-gateways.md) — Provides a multi-protocol gateway capable of handling HTTP, gRPC, and WebSockets simultaneously. ([source](https://github.com/midwayjs/midway#readme))

### Part of an Awesome List

- [Serverless](https://awesome-repositories.com/f/awesome-lists/devops/serverless.md) — Serverless framework for cloud functions.
- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — Cloud-native, future-oriented Node.js framework.
