All Projects → Dineshs91 → Django Cqrs

Dineshs91 / Django Cqrs

Licence: gpl-2.0
A demo application to show how cqrs can be implemented in Django

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Django Cqrs

Eventsourcing
A library for event sourcing in Python.
Stars: ✭ 760 (+3519.05%)
Mutual labels:  django, cqrs
Django Login Required Middleware
Requires login to all requests through middleware.
Stars: ✭ 20 (-4.76%)
Mutual labels:  django
Djangoffice
Project management/CRM for small offices - Clients, Jobs, Tasks, Rates, Activities, Timesheets, Contacts, Invoices etc. etc.
Stars: ✭ 13 (-38.1%)
Mutual labels:  django
Jong
🐍 💡 JOplin Notes Generator - project replaced by https://github.com/foxmask/yeoboseyo
Stars: ✭ 15 (-28.57%)
Mutual labels:  django
Channelslightscontrol
Demo app with Django Channels to control Lights over websockets. Made for PyStPete meetup(https://www.meetup.com/Saint-Petersburg-Python-Meetup/).
Stars: ✭ 14 (-33.33%)
Mutual labels:  django
Timed Backend
Django API for the Timed application
Stars: ✭ 15 (-28.57%)
Mutual labels:  django
Pytest Django
A Django plugin for pytest.
Stars: ✭ 872 (+4052.38%)
Mutual labels:  django
Seven23 server
Fully manual budget app to track your expenses. Opensource, with privacy by design.
Stars: ✭ 20 (-4.76%)
Mutual labels:  django
Celeryproject
The official Celery Project website
Stars: ✭ 15 (-28.57%)
Mutual labels:  django
Bootcamp Kodluyoruz Org
Kodluyoruz.org icin Gelistirilen BootCamp Altyapisi
Stars: ✭ 15 (-28.57%)
Mutual labels:  django
Georide Position
get the last day deplacement of the georide tracker
Stars: ✭ 15 (-28.57%)
Mutual labels:  django
Wolkenkit
wolkenkit is an open-source CQRS and event-sourcing framework based on Node.js, and it supports JavaScript and TypeScript.
Stars: ✭ 880 (+4090.48%)
Mutual labels:  cqrs
Django Celery Beat
Celery Periodic Tasks backed by the Django ORM
Stars: ✭ 884 (+4109.52%)
Mutual labels:  django
Docker Taiga
Docker container for Taiga https://taiga.io
Stars: ✭ 14 (-33.33%)
Mutual labels:  django
E Commerce 2 django
Guest register, user register, user login, user logout, account home page, product view history, change password, reset password, change name, send activation email when register, resend activation email, add shipping address, add billing address, add nickname to the addresses, edit shipping address, edit billing address, view list of your addresses, reuse shipping addresses when order products, reuse billing addresses when ordeer products, show sales analytics if staff or admin only using -chart.js-, get analytics data with Ajax, receive marketing email, change if user will receive marketing email or not by admin, send contact message with Ajax, products list, product detail, download product detail as a PDF file, download digital product files -if the user purchased that digital product only-, orders list, list of digital products files, order detail, download order detail as a PDF file, verify order ownership with Ajax -to secure order detail page-, show cart products, add or remove product from cart, checkout page, thanks page when order placed successfully, add or reuse payment method, add or reuse payment method with Ajax, search products by title, search products by description, search products by price, search products by tag title, write tags for products -by admin only-, auto fill contact email, full name if user logged in.
Stars: ✭ 20 (-4.76%)
Mutual labels:  django
Django Suit Daterange Filter
Filter for django-admin allowing lookups by date range
Stars: ✭ 13 (-38.1%)
Mutual labels:  django
Django Bootstrap4
Bootstrap 4 integration with Django.
Stars: ✭ 877 (+4076.19%)
Mutual labels:  django
Drf Tus
A Tus (tus.io) library for Django Rest Framework
Stars: ✭ 15 (-28.57%)
Mutual labels:  django
Magazine Website Akka
The experiment on the akkadotnet
Stars: ✭ 21 (+0%)
Mutual labels:  cqrs
Media Hub
A Django based Web app that allows users to access information about movies present in their computer even when offline(Initial Setup requires Internet)
Stars: ✭ 20 (-4.76%)
Mutual labels:  django

django-cqrs

A demo application to show how cqrs can be implemented in Django

Bring up the services.

cd into the project root. (After cloning this repo)

Bring up the services up.

docker-compose up -d --build

Visit http://localhost:8000/posts/

Shutdown the containers.

docker-compose down

NOTE: For docker commands refer this

Test events replay

docker exec -it cqrs_web_1 blog/demo/replay_three.sh

docker exec -it cqrs_web_1 blog/demo/replay_all.sh

Architecture

Currently there are only two events PostCreatedEvent and PostUpdatedEvent.

I tried to replicate the concepts from this video I did not implement the command part.

There are 2 types of data,

  1. event data
  2. entity data

Event data captures every change to the system, whereas entity data has only the recent state.

Any state change to the application is captured through an event (PostCreatedEvent, PostUpdatedEvent). For storing event data I've used MongoDB and for storing entity data PostgresDB.

Creation of event data is handled in django forms. Forms save method is overloaded with the code which creates the events and makes a call to event handler. Event handler creates the application state, which in turn gets stored in postgres.

So all the writes go through Events and EventHandler and reads happen on the entity data which is stored in postgres.

If anybody wants to help out or interested about this, please open a PR or start a discussion in the issues section.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].