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

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

montycat-0.1.35-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: montycat-0.1.35.tar.gz
  • Upload date:
  • Size: 17.9 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.35.tar.gz
Algorithm Hash digest
SHA256 10c97482ffe3405aae59ec0ef0a4b4a15f43334adfad58faf0072d2f3082d32a
MD5 3cdc7be4753246b8cefb8fbccc545ae3
BLAKE2b-256 429fcb5718433cf1aa708ea52a0c97e8bf5e13387d48c1d7734646dc99831ac2

See more details on using hashes here.

File details

Details for the file montycat-0.1.35-py3-none-any.whl.

File metadata

  • Download URL: montycat-0.1.35-py3-none-any.whl
  • Upload date:
  • Size: 16.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.3

File hashes

Hashes for montycat-0.1.35-py3-none-any.whl
Algorithm Hash digest
SHA256 92f9d5ec48f26c04f769640e8fe404a63b03786b6d202cfcfb32150aec44abfe
MD5 472004731081eeaad30a80d4d4530e8b
BLAKE2b-256 1c656fd54eb24876355256635cf854ae89830dac7b236d2016cc58abe2873513

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