midaz

module
v1.38.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 26, 2024 License: Apache-2.0

README

banner

Latest Release Go Report Discord

Midaz: Next-Gen Open-Source Ledger

Midaz is an open-source ledger system that is part of a Core Banking Platform being developed by Lerian. The ledger and the other components of the platform are currently UNDER CONSTRUCTION and should not be used in production.

Midaz is designed to address the limitations of traditional ledger systems and provide a comprehensive, multi-asset, multi-currency, and immutable ledger solution for the modern financial landscape.

Understanding Core Banking

At Lerian, we view a core banking system as a comprehensive platform consisting of four main components:

  1. Ledger (Core): The central database that manages all transactions and accounts. This is where Midaz plays a crucial role, serving as the foundation of the core banking system.

  2. Transactional Services: These generate debits and credits in the ledger. Examples include instant payments (like PIX in Brazil), card transactions, and wire transfers.

  3. Governance: This component includes integrations for onboarding, anti-fraud/AML measures, management reporting, regulatory compliance, and accounting.

  4. Connectivity Infrastructure: This provides the necessary (if any, since most advanced regional financial systems are moving to the cloud) physical connections to external systems and networks.

Our open-source approach allows developers to integrate Midaz seamlessly with other components, creating a complete core banking solution tailored to their specific needs. Whether you're building a new financial product, modernizing legacy systems, or creating innovative fintech solutions, Midaz provides the solid foundation you need for your core banking infrastructure.

Lerian is committed to also providing a robust set of Transactional Services and Governance integrations to complement Midaz. More to come soon.

Key Features

  • Open-source under Apache 2.0 License: Freely available for developers to access, modify, and contribute.
  • Double-entry chart-of-accounts engine: Ensures financial integrity and accuracy.
  • Multi-asset and multi-currency support: Seamlessly handle transactions across various currencies and asset types.
  • Complex "n:n" transactions: Efficiently process transactions involving multiple senders and receivers.
  • Native immutability and auditability: Tamper-proof transaction records for enhanced security and compliance.
  • Cloud-native and cloud-agnostic design: Flexible deployment across various cloud environments.
  • API-based + CLI and console: Easy integration and interaction with existing systems.
  • Advanced security measures: Including encryption and double-token authentication.
  • SOC-2, GDPR and PCI-DSS ready: Adherence to strict security and compliance standards.
  • Customizable governance flows: Define and implement custom transaction approval workflows.
  • Proprietary DSL: For efficient transaction modeling and customization.
  • Smart contract integration: Enabling the programming of complex types of transactions, as well as automated compliance.

Getting Started

To start using Midaz, please follow our Getting Started Guide. For comprehensive documentation on Midaz features, API references, and best practices, visit our Official Documentation.

Quick Installation Guide: Localhost

First, make sure you have Docker and Docker Compose installed.

# Clone the repository
git clone https://github.com/LerianStudio/midaz.git
cd midaz

# Set up environment variables
make set-env

# Start all services
make up

This will start all components using Docker Compose:

  • Authentication Service
  • Infrastructure Service
  • Ledger Service
  • Transaction Service
Additional Commands
  • Run tests: make test
  • Format code: make format
  • Run linter: make lint
  • Set up git hooks: make setup-git-hooks
  • Show help: make help for all possible project management commands

Community & Support

  • Join our Discord community for discussions, support, and updates.
  • For bug reports and feature requests, please use our GitHub Issues.
  • If you want to raise anything to the attention of the community, open a Discussion in our GitHub.
  • Follow us on Twitter for the latest news and announcements.

Repo Activity

Alt

Contributing & License

We welcome contributions from the community! Please read our Contributing Guidelines to get started. Midaz is released under the Apache License 2.0. See LICENSE for more information. In a nutshell, this means you can use, modify, and distribute Midaz as you see fit, as long as you include the original copyright and license notice.

About Lerian

Midaz is developed by Lerian, a tech company founded in 2023, led by a team with a track record in developing ledger and core banking solutions. For any inquiries or support, please reach out to us at contact@lerian.studio or simply open a Discussion in our GitHub repository.

Directories

Path Synopsis
components
audit/api
Package api Code generated by swaggo/swag.
Package api Code generated by swaggo/swag.
audit/internal/adapters/grpc/out
Package out is a generated GoMock package.
Package out is a generated GoMock package.
audit/internal/adapters/mongodb/audit
Package audit is a generated GoMock package.
Package audit is a generated GoMock package.
audit/internal/adapters/rabbitmq
Package rabbitmq is a generated GoMock package.
Package rabbitmq is a generated GoMock package.
ledger/api
Package api Code generated by swaggo/swag.
Package api Code generated by swaggo/swag.
ledger/internal/adapters/mongodb
Package mongodb is a generated GoMock package.
Package mongodb is a generated GoMock package.
ledger/internal/adapters/postgres/account
Package account is a generated GoMock package.
Package account is a generated GoMock package.
ledger/internal/adapters/postgres/asset
Package asset is a generated GoMock package.
Package asset is a generated GoMock package.
ledger/internal/adapters/postgres/ledger
Package ledger is a generated GoMock package.
Package ledger is a generated GoMock package.
ledger/internal/adapters/postgres/organization
Package organization is a generated GoMock package.
Package organization is a generated GoMock package.
ledger/internal/adapters/postgres/portfolio
Package portfolio is a generated GoMock package.
Package portfolio is a generated GoMock package.
ledger/internal/adapters/postgres/product
Package product is a generated GoMock package.
Package product is a generated GoMock package.
ledger/internal/adapters/rabbitmq
Package rabbitmq is a generated GoMock package.
Package rabbitmq is a generated GoMock package.
ledger/internal/adapters/redis
Package redis is a generated GoMock package.
Package redis is a generated GoMock package.
mdz
mdz/internal/domain/repository
Package repository is a generated GoMock package.
Package repository is a generated GoMock package.
transaction/api
Package api Code generated by swaggo/swag.
Package api Code generated by swaggo/swag.
transaction/internal/adapters/grpc/out
Package out is a generated GoMock package.
Package out is a generated GoMock package.
transaction/internal/adapters/mongodb
Package mongodb is a generated GoMock package.
Package mongodb is a generated GoMock package.
transaction/internal/adapters/postgres/assetrate
Package assetrate is a generated GoMock package.
Package assetrate is a generated GoMock package.
transaction/internal/adapters/postgres/operation
Package operation is a generated GoMock package.
Package operation is a generated GoMock package.
transaction/internal/adapters/postgres/transaction
Package transaction is a generated GoMock package.
Package transaction is a generated GoMock package.
transaction/internal/adapters/rabbitmq
Package rabbitmq is a generated GoMock package.
Package rabbitmq is a generated GoMock package.
transaction/internal/adapters/redis
Package redis is a generated GoMock package.
Package redis is a generated GoMock package.
pkg
Package pkg is a generated GoMock package.
Package pkg is a generated GoMock package.
mlog
Package mlog is a generated GoMock package.
Package mlog is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL