Code Monkey home page Code Monkey logo

bitloops / ddd-hexagonal-cqrs-es-eda Goto Github PK

View Code? Open in Web Editor NEW
1.1K 11.0 81.0 763 KB

Complete working example of using Domain Driven Design (DDD), Hexagonal Architecture, CQRS, Event Sourcing (ES), Event Driven Architecture (EDA), Behaviour Driven Development (BDD) using TypeScript and NestJS. Like what you see? Don't forget to star! ⭐ ^^^

Home Page: https://bitloops.com

License: MIT License

JavaScript 24.64% Dockerfile 0.25% HTML 0.20% CSS 0.15% TypeScript 73.01% Shell 0.25% Go 1.50%
bdd cqrs ddd domain-driven-design event-sourcing hexagonal-architecture jaeger mongodb nats nestjs

ddd-hexagonal-cqrs-es-eda's Introduction

Bitloops

Bitloops

Bitloops is a scalable open source Firebase substitute that can support any database and workflow orchestration. We’re building Bitloops using enterprise-grade open source tools so that you can build any type of enterprise-grade application 10x faster that will connect and serve your web, mobile, desktop, or server applications seamlessly.

liveSync

liveSync

Create and update strongly-typed HTTP/2 REST APIs in seconds and use them instantly as RPCs on your client code with just a single line of code (only available for TypeScript projects currently)

Subscriptions to Realtime Events

Subscriptions

Bitloops allows your client code to subscribe to operations of any database or backend event with just a single line of code

Authentication

Authentication

Add powerful authentication to your clients with a single line of code

  • Backend-as-a-Service: authentication, realtime database, storage (soon), hosting, subscriptions and notifications, cloud infrastructure
  • Low-code (drag & drop) IDE that allows developers to build actual backend services using Picoservices or traditional Microservices or APIs
  • Instant code deployment into development, testing or production environments
  • Integration platform-as-a-service that allows integration of any application, microservice or 3rd party service

Bitloops removes the complexity and repetitiveness required to build and deploy a modern backend application, API or database from scratch and allows you to continue scaling and extending your applications faster than any other tool.

Using Bitloops, you can easily integrate your application with user authentication & multiple sign-in methods, integration of any database, data storage (soon), as well as hosting for your website. In addition, you can continue building new products and features, or iterate existing features / business logic 10x faster than with traditional tools.

Bitloops is the only platform you will need for all your backend needs. We are still at our early stages with much to do and a long backlog but with your support we will get there faster.

Why should I care?

  • liveSync: Your frontend is connected and synced with your backend even during development allowing for seamless integration (think of GraphQL Apollo on steroids)
  • Realtime Everything: Receive events on your frontend with a single line of code and turn all your databases into “realtime” ones
  • 10x Productivity: Creating APIs and backends just became 10 times faster as we take care of all the boilerplate and infrastructure
  • Authentication: Authentication with a single line of code
  • Hosting: Host and deploy your frontend application just by running "bitloops deploy”
  • Storage: Store your files
  • Scalability: We are building Bitloops with parallel processing and scalability in mind Everything scales horizontally on Kubernetes
  • Security: We ensure that best practices are followed in every step to ensure security in everything you build

Low-Code Workflow Orchestration & Picoservices Architecture - Why should I care?

  • Instant deployments: Deploy your backend changes to production in milliseconds
  • Reusability: Write only unique and high value code and maximize reusability
  • Powerful Collaboration Features: Develop in a collaborative way, Google Docs-style
  • Versioning & History: No need for repos and commits everything is stored automatically for you
  • Out-of-the-box EDA: Out of the box delivery guarantee strategies and error handling for Event Driven systems
  • Easy maintenance: Automatic package and library updates minimizing maintenance effort
  • Low-Code Business Logic: Write your business logic in a language agnostic and timeless manner using Low-Code diagrams
  • Polyglot Applications: Leverage any package and library written in any language - use the best for the job and create truly polyglot applications
  • Backwards Compatible: Connect your existing services and APIs using REST, gRPC, Kafka and more

Status

  • Alpha: We are testing Bitloops with a closed set of users - Low testing coverage, several bugs, missing features, UX experience suboptimal. We are aware of most important issues and we are wokring hard to fix them but we try to maintain the right balance between releasing fast and iterating with writing high quality code
  • Public Alpha - Community Edition - Coming Soon!: Anyone can sign up over at console.bitloops.com. But go easy on us ❤️ We have big dreams but we are a small team and we just started the project in July '21.
  • Public Alpha - Managed Backend-as-a-Service: Anyone can sign up over at console.bitloops.com.
  • Public Beta: Stable enough for most non-enterprise use-cases
  • Public: Production-ready

Installation

Prequisitions

  • node (we suggest to install via nvm)
nvm install node

In order to validate that the above are installed correctly, running the commands below at the terminal should return the corresponding versions:

node -v
docker -v
docker-compose -v

To check if docker is up and running you may check by running the command below, without getting an error:

docker ps

Step 1

# Install bitloops cli
npm install -g bitloops-cli

# or using yarn
yarn global add bitloops-cli

Step 2

# For user authentication
bitloops login

Step 3

# To create a workspace and give it a name 
# This may take a while the first time you run it, since it will have to pull the necessary images from Docker Hub. So please try to be a bit patient 🙏.

bitloops install -n "<Workspace Name>"

After the completion of this step, your Workspace Id will appear, in order to copy it and use it in the next step.

Step 4

# Establish a connection between bitloops console and your local installation
bitloops tunnel -w "<Workspace Id>"

Step 5

Visit the Bitloops Console, and login with Google with the same account you logged in during Step 2.

On Windows

You need to have a terminal which can run bash commands e.g. git bash, and use this to execute the bitloops commands. After install a restart may be required to be able to use docker commands.

On Linux

Currently this library uses libsecret so you may need to install it before running.
You should follow Step 1 from above, then depending on your distribution, you will need to run the following command:

  • Debian/Ubuntu: sudo apt-get install libsecret-1-dev
  • Red Hat-based: sudo yum install libsecret-devel
  • Arch Linux-based:
    • sudo pacman -S libsecret
    • sudo pacman -S gnome-keyring

Continue with Step 2, 3, 4 and 5 from above.

Contents

Bitloops' monorepo contains the following projects:

Licenses

Each project in this repo contains licensing information specific to that project.

ddd-hexagonal-cqrs-es-eda's People

Contributors

danias avatar dependabot[bot] avatar ellik95 avatar giorgosnty avatar sardounis avatar sergiobitloops avatar traigor avatar varagos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ddd-hexagonal-cqrs-es-eda's Issues

Unable to generate same Proto AutoGenerated files.

I try to run the application with change in proto file. But when I generate the proto code. i generated completely different code.

To Reproduce
Steps to reproduce the behavior:

  1. Clone the repo.
  2. yarn install
  3. make change in todo.proto
  4. Build the proto file.
  5. Review generated code.

It should export the Protocode not just the interface.

Screenshots
image

I

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.