{"id":16988500,"url":"https://github.com/mbc-net/mbc-cqrs-serverless","last_synced_at":"2026-04-08T10:00:42.453Z","repository":{"id":214014860,"uuid":"734240557","full_name":"mbc-net/mbc-cqrs-serverless","owner":"mbc-net","description":"serverless applications with CQRS on AWS, NestJS and local development","archived":false,"fork":false,"pushed_at":"2026-04-06T06:30:20.000Z","size":6559,"stargazers_count":30,"open_issues_count":41,"forks_count":6,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2026-04-06T08:48:48.994Z","etag":null,"topics":["aws","cqrs","event-driven","framework","localdevelopment","nestjs","serverless","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mbc-net.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2023-12-21T07:49:42.000Z","updated_at":"2026-04-06T06:12:33.000Z","dependencies_parsed_at":"2024-01-07T15:36:09.988Z","dependency_job_id":"5cf91ce9-b63e-403b-a1fc-7928da7a9420","html_url":"https://github.com/mbc-net/mbc-cqrs-serverless","commit_stats":{"total_commits":246,"total_committers":5,"mean_commits":49.2,"dds":0.2804878048780488,"last_synced_commit":"7748d7c3559857b8e70a24e147e806bbc2aa64de"},"previous_names":["mbc-net/mbc-cqrs-serverless"],"tags_count":176,"template":false,"template_full_name":null,"purl":"pkg:github/mbc-net/mbc-cqrs-serverless","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbc-net%2Fmbc-cqrs-serverless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbc-net%2Fmbc-cqrs-serverless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbc-net%2Fmbc-cqrs-serverless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbc-net%2Fmbc-cqrs-serverless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mbc-net","download_url":"https://codeload.github.com/mbc-net/mbc-cqrs-serverless/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mbc-net%2Fmbc-cqrs-serverless/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31549900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","cqrs","event-driven","framework","localdevelopment","nestjs","serverless","typescript"],"created_at":"2024-10-14T03:04:10.170Z","updated_at":"2026-04-08T10:00:42.323Z","avatar_url":"https://github.com/mbc-net.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![MBC CQRS serverless framework](https://mbc-cqrs-serverless.mbc-net.com/img/mbc-cqrs-serverless.png)\n\n\u003cdiv align=\"center\"\u003e\n\n# MBC CQRS Serverless Framework\n\n**Build production-ready serverless applications on AWS in minutes, not months.**\n\n[![npm version](https://badge.fury.io/js/@mbc-cqrs-serverless%2Fcore.svg)](https://www.npmjs.com/package/@mbc-cqrs-serverless/core)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue.svg)](https://www.typescriptlang.org/)\n[![NestJS](https://img.shields.io/badge/NestJS-10.x-red.svg)](https://nestjs.com/)\n\n[Documentation](https://mbc-cqrs-serverless.mbc-net.com/) | [Getting Started](#quick-start) | [Examples](https://github.com/mbc-net/mbc-cqrs-serverless-samples) | [API Reference](https://mbc-cqrs-serverless.mbc-net.com/docs/command-service)\n\n\u003c/div\u003e\n\n---\n\n## Why MBC CQRS Serverless?\n\nBuilding enterprise-grade serverless applications on AWS is hard. You need to handle:\n- Event sourcing and CQRS patterns\n- Multi-tenancy and data isolation\n- DynamoDB to RDS synchronization\n- Sequence number generation\n- Async task processing\n- ...and much more\n\n**MBC CQRS Serverless provides all of this out of the box**, so you can focus on your business logic.\n\n### Key Benefits\n\n| Feature | What You Get |\n|---------|--------------|\n| **Zero to API in 5 minutes** | CLI generates complete project structure with best practices |\n| **Built-in Multi-tenancy** | Data isolation, tenant settings, and RBAC out of the box |\n| **Event Sourcing** | Full audit trail with DynamoDB Streams and automatic RDS sync |\n| **Local Development** | Complete offline mode with Docker - no AWS costs during development |\n| **Production Ready** | Battle-tested in enterprise SaaS applications |\n\n---\n\n## Quick Start\n\n```bash\n# Install CLI\nnpm install -g @mbc-cqrs-serverless/cli\n\n# Create new project\nmbc new my-saas-app\n\n# Start development\ncd my-saas-app\nnpm install\nnpm run build            # Build the project\nnpm run offline:docker   # Start local AWS services\nnpm run migrate          # Run database migrations\nnpm run offline:sls      # Start API server\n```\n\n**That's it!** Your API is running at `http://localhost:4000`\n\n---\n\n## See It in Action\n\n![Quick Start Demo](https://mbc-cqrs-serverless.mbc-net.com/demo/quick-start.gif)\n\n### Create a CRUD endpoint in 30 lines:\n\n```typescript\n// todo.controller.ts\n@Controller('api/todo')\nexport class TodoController {\n  constructor(\n    private readonly commandService: CommandService,\n    private readonly dataService: DataService,\n  ) {}\n\n  @Post()\n  async create(@Body() dto: CreateTodoDto, @IInvoke() invokeContext: IInvoke) {\n    const command = new TodoCommandDto({\n      pk: dto.pk,\n      sk: dto.sk,\n      tenantCode: invokeContext.tenantCode,\n      name: dto.name,\n      attributes: { description: dto.description },\n    });\n    return this.commandService.publishSync(command, { invokeContext });\n  }\n\n  @Get(':pk/:sk')\n  async findOne(@Param('pk') pk: string, @Param('sk') sk: string) {\n    return this.dataService.getItem({ pk, sk });\n  }\n}\n```\n\n**What happens automatically:**\n- Command is validated and persisted to DynamoDB\n- Event is emitted via DynamoDB Streams\n- Data is synced to RDS for complex queries\n- Full audit trail is maintained\n- Multi-tenant isolation is enforced\n\n---\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────────────────┐\n│                         Your Application                             │\n├─────────────────────────────────────────────────────────────────────┤\n│                                                                      │\n│   Client Request                                                     │\n│        │                                                             │\n│        ▼                                                             │\n│   ┌─────────┐    ┌─────────┐    ┌──────────────┐                    │\n│   │   API   │───▶│ Service │───▶│ CommandService│                    │\n│   │ Gateway │    │  Layer  │    │   (Write)    │                    │\n│   └─────────┘    └─────────┘    └──────────────┘                    │\n│                       │                │                             │\n│                       │                ▼                             │\n│                       │         ┌──────────────┐                    │\n│                       │         │  DynamoDB    │──── Stream ───┐    │\n│                       │         │  (Commands)  │               │    │\n│                       │         └──────────────┘               ▼    │\n│                       │                              ┌──────────────┐│\n│                       ▼                              │Step Functions││\n│                ┌──────────────┐                      └──────────────┘│\n│                │ DataService  │                              │       │\n│                │   (Read)     │                              ▼       │\n│                └──────────────┘                      ┌──────────────┐│\n│                       │                              │  DynamoDB    ││\n│                       ▼                              │   (Data)     ││\n│                ┌──────────────┐                      └──────────────┘│\n│                │     RDS      │◀──── Sync ───────────────────┘       │\n│                │   (Query)    │                                      │\n│                └──────────────┘                                      │\n│                                                                      │\n└─────────────────────────────────────────────────────────────────────┘\n```\n\n---\n\n## Packages\n\n| Package | Description | Version |\n|---------|-------------|---------|\n| [@mbc-cqrs-serverless/core](./packages/core) | Core CQRS framework with AWS integrations | [![npm](https://img.shields.io/npm/v/@mbc-cqrs-serverless/core.svg)](https://www.npmjs.com/package/@mbc-cqrs-serverless/core) |\n| [@mbc-cqrs-serverless/cli](./packages/cli) | CLI tool for project scaffolding | [![npm](https://img.shields.io/npm/v/@mbc-cqrs-serverless/cli.svg)](https://www.npmjs.com/package/@mbc-cqrs-serverless/cli) |\n| [@mbc-cqrs-serverless/tenant](./packages/tenant) | Multi-tenancy support | [![npm](https://img.shields.io/npm/v/@mbc-cqrs-serverless/tenant.svg)](https://www.npmjs.com/package/@mbc-cqrs-serverless/tenant) |\n| [@mbc-cqrs-serverless/master](./packages/master) | Master data and hierarchical settings | [![npm](https://img.shields.io/npm/v/@mbc-cqrs-serverless/master.svg)](https://www.npmjs.com/package/@mbc-cqrs-serverless/master) |\n| [@mbc-cqrs-serverless/sequence](./packages/sequence) | Sequence number generation with rotation | [![npm](https://img.shields.io/npm/v/@mbc-cqrs-serverless/sequence.svg)](https://www.npmjs.com/package/@mbc-cqrs-serverless/sequence) |\n| [@mbc-cqrs-serverless/task](./packages/task) | Async task processing and queue management | [![npm](https://img.shields.io/npm/v/@mbc-cqrs-serverless/task.svg)](https://www.npmjs.com/package/@mbc-cqrs-serverless/task) |\n| [@mbc-cqrs-serverless/import](./packages/import) | Data import with CSV and REST support | [![npm](https://img.shields.io/npm/v/@mbc-cqrs-serverless/import.svg)](https://www.npmjs.com/package/@mbc-cqrs-serverless/import) |\n| [@mbc-cqrs-serverless/ui-setting](./packages/ui-setting) | UI configuration management | [![npm](https://img.shields.io/npm/v/@mbc-cqrs-serverless/ui-setting.svg)](https://www.npmjs.com/package/@mbc-cqrs-serverless/ui-setting) |\n\n---\n\n## Features\n\n### Core Framework\n- **CQRS Pattern** - Clean separation of commands (writes) and queries (reads)\n- **Event Sourcing** - Complete audit trail with immutable event log\n- **Optimistic Locking** - Automatic conflict resolution for concurrent updates\n\n### AWS Integration\n- **Lambda** - Serverless compute with automatic scaling\n- **DynamoDB** - Event store and data persistence\n- **RDS/Aurora** - Complex queries with Prisma ORM\n- **Cognito** - Authentication and authorization\n- **Step Functions** - Workflow orchestration\n- **SNS/SQS** - Event-driven messaging\n\n### Enterprise Features\n- **Multi-tenancy** - Built-in tenant isolation and settings hierarchy\n- **Sequence Generation** - Auto-incrementing IDs with date rotation\n- **Master Data** - Centralized configuration management\n- **Async Tasks** - Background job processing with retries\n\n### Developer Experience\n- **Full TypeScript** - Type-safe development with excellent IDE support\n- **NestJS Foundation** - Familiar patterns and dependency injection\n- **Local Development** - Complete offline mode with Docker\n- **CLI Tools** - Project scaffolding and code generation\n\n---\n\n## Examples\n\nCheck out our [sample repository](https://github.com/mbc-net/mbc-cqrs-serverless-samples) for complete working examples:\n\n| Example | Description |\n|---------|-------------|\n| [step-01-setup](https://github.com/mbc-net/mbc-cqrs-serverless-samples/tree/main/step-01-setup) | Environment setup |\n| [step-02-create](https://github.com/mbc-net/mbc-cqrs-serverless-samples/tree/main/step-02-create) | Create operations with CommandService |\n| [step-03-rds-sync](https://github.com/mbc-net/mbc-cqrs-serverless-samples/tree/main/step-03-rds-sync) | DynamoDB to RDS synchronization |\n| [step-04-read](https://github.com/mbc-net/mbc-cqrs-serverless-samples/tree/main/step-04-read) | Read operations with DataService |\n| [step-05-search](https://github.com/mbc-net/mbc-cqrs-serverless-samples/tree/main/step-05-search) | Search with Prisma/RDS |\n| [step-06-update-delete](https://github.com/mbc-net/mbc-cqrs-serverless-samples/tree/main/step-06-update-delete) | Update and soft delete |\n| [step-07-sequence](https://github.com/mbc-net/mbc-cqrs-serverless-samples/tree/main/step-07-sequence) | Sequence number generation |\n| [complete/basic](https://github.com/mbc-net/mbc-cqrs-serverless-samples/tree/main/complete/basic) | Full CRUD implementation |\n\n---\n\n## Documentation\n\nVisit our [documentation site](https://mbc-cqrs-serverless.mbc-net.com/) for:\n\n- [Getting Started Guide](https://mbc-cqrs-serverless.mbc-net.com/docs/getting-started)\n- [Build a Todo App Tutorial](https://mbc-cqrs-serverless.mbc-net.com/docs/build-todo-app)\n- [API Reference](https://mbc-cqrs-serverless.mbc-net.com/docs/command-service)\n- [Architecture Guide](https://mbc-cqrs-serverless.mbc-net.com/docs/introduction)\n\n---\n\n## Installation\n\n### Latest Stable Release\n```bash\nnpm install -g @mbc-cqrs-serverless/cli\n```\n\n### Beta Release (Latest Features)\n```bash\nnpm install -g @mbc-cqrs-serverless/cli@beta\n```\n\n### Specific Version\n```bash\nnpm install -g @mbc-cqrs-serverless/cli@1.0.17\n```\n\n---\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.\n\n```bash\n# Clone the repository\ngit clone https://github.com/mbc-net/mbc-cqrs-serverless.git\n\n# Install dependencies\nnpm install\n\n# Build all packages\nnpm run build\n\n# Run tests\nnpm test\n```\n\n### Development Workflow\n1. Fork the repository\n2. Create a feature branch from `develop`\n3. Make your changes with tests\n4. Submit a pull request\n\n---\n\n## Community\n\n- [GitHub Issues](https://github.com/mbc-net/mbc-cqrs-serverless/issues) - Bug reports and feature requests\n- [GitHub Discussions](https://github.com/mbc-net/mbc-cqrs-serverless/discussions) - Questions and discussions\n- [Changelog](https://mbc-cqrs-serverless.mbc-net.com/docs/changelog) - Release notes\n\n---\n\n## License\n\nCopyright \u0026copy; 2024-2025, [Murakami Business Consulting, Inc.](https://www.mbc-net.com/)\n\nThis project is licensed under the [MIT License](./LICENSE.txt).\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**[Get Started Now](https://mbc-cqrs-serverless.mbc-net.com/docs/getting-started)** | **[View Examples](https://github.com/mbc-net/mbc-cqrs-serverless-samples)** | **[Read the Docs](https://mbc-cqrs-serverless.mbc-net.com/)**\n\nMade with love for the serverless community\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmbc-net%2Fmbc-cqrs-serverless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmbc-net%2Fmbc-cqrs-serverless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmbc-net%2Fmbc-cqrs-serverless/lists"}