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):
    keyspace = "departments"

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

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

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

Departments.create_keyspace()
Managers.create_keyspace()

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.41.tar.gz (16.5 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for montycat-0.1.41.tar.gz
Algorithm Hash digest
SHA256 d510a33ccbe3a8b4f0f9bbfd4abd503edb091ca3ad40aef16815be2a559c2c80
MD5 c7093174b342783520268e68ed5cbf13
BLAKE2b-256 06619f9de57dc86b3f179f2f41ee669de96892f1b298316838a07e6daee13112

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