Skip to main content

A Python client for MontyCat, NoSQL store utilizing Data Mesh architecture.

Project description

MontyCat

MontyCat is a Python client for Montycat, a high-performance, distributed NoSQL store designed with a cutting-edge Data Mesh architecture. This client empowers developers to seamlessly manage and query their data while leveraging the unparalleled flexibility and scalability offered by NoSQL databases within a decentralized data ownership paradigm.

Key Features

  • High Performance: Harnesses MontyCat's advanced architecture for lightning-fast read and write operations.
  • 🌐 Distributed Architecture: Effortlessly connects to a distributed NoSQL database, enabling dynamic horizontal scalability across diverse data domains.
  • 🗂️ Data Mesh Design: Empowers cross-functional teams to own, manage, and serve their own data, enhancing collaboration and eliminating bottlenecks.
  • 🔄 Asynchronous Support: Built on asyncio for ultra-responsive, non-blocking operations, enabling high concurrency and real-time data processing.
  • 🧩 Meshing and Sharding: Efficiently orchestrates data across multiple nodes with robust support for data meshing and sharding, optimizing resource utilization.
  • 🛡️ Memory Safety: Implements state-of-the-art memory management practices, minimizing the risk of memory-related issues and enhancing stability.
  • 📊 Smart Data Governance: Integrates intelligent governance features to ensure data quality and compliance across the distributed architecture.
  • 🤝 Seamless Integration: Offers a simple and intuitive API for effortless integration with Python applications, reducing time-to-value.
  • 📚 Robust Documentation: Comprehensive and user-friendly documentation to accelerate onboarding and maximize productivity.

Installation

You can install Python client for Montycat using pip:

pip install montycat

```python
#models.py
from montycat import Engine, Store, Schema

connection = Engine(
    host="127.0.0.1",
    port=21210,
    username="admin",
    password="password",
    store="main"
)

class Departments(Store.Persistent):
    namespace = "departments"

class Managers(Store.InMemory):
    namespace = "managers"

Departments.connect_engine(connection)
Managers.connect_engine(connection)

#migrations.py -- execute separately 
from models.py import Departments, Managers

Departments.create_namespace()
Managers.create_namespace()

class Department(Schema):
    name: str
    employees: int

class Manager(Schema):
    name: str
    age: int

#***.py
from models.py import Departments, Managers, Department, Manager

department = Department(
    name="Sales",
    employees=10
).serialize()

manager = Manager(
    name="John Doe",
    age=46
).serialize()

#put into async function
res1 = await Departments.insert_custom_key_value(custom_key="Sales", value=department) 
#{'success': True, 'payload': 192893812831283134324}
res2 = await Managers.insert_value(value=manager)
#{'success': True, 'payload': 192893812831283134324}
res3 = await Departments.get_value(custom_key="Sales")
#{'success': True, 'payload': {'name': 'Sales', 'employees': 10}}
res4 = await Managers.lookup_values_where(age=46)
#{'success': True, 'payload': [{'name': 'John Doe', 'age': 46}]}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

montycat-0.1.32.tar.gz (17.8 kB view details)

Uploaded Source

File details

Details for the file montycat-0.1.32.tar.gz.

File metadata

  • Download URL: montycat-0.1.32.tar.gz
  • Upload date:
  • Size: 17.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for montycat-0.1.32.tar.gz
Algorithm Hash digest
SHA256 ecb2fb36e5dfcbbe36afdb328ca2b37bfb0c03d146272ea85b2fdde5ae16d6c6
MD5 0ef5b69f11d0ab75e130fa1044cd41a6
BLAKE2b-256 ce5384eeb5250acf4c6bff79f4148f40a7a13bb9ad83828f8307fdb921ecf89f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page