- Add example for exporting Atlas collections
- Demonstrate using AtlasClient to read exported content
- Include examples for listing collections and pages
- Show reading page content and metadata via AtlasClient
- Added a client and server for a simple key-value store.
- Improved documentation with client and server usage examples.
- Created client and server implementations using the V language.
- Adds a new lightweight key-value store server implemented in V.
- Includes basic CRUD operations (`set`, `get`, `delete`).
- Provides configurable host and operation restrictions for security.
- Offers middleware for logging and request validation.
- Supports incremental mode for automatic ID generation.
- Includes comprehensive documentation and example usage.
- Adds unit tests to ensure functionality and stability.
- Add worker registration to MyceliumStreamer: Allows for explicit
addition of workers, improving management and control.
- Simplify worker message handling: Streamlines message processing
for increased efficiency and readability. Removes unnecessary
logging and simplifies message routing.
- Remove redundant message handling: Eliminates duplicate code
paths for cleaner and more maintainable code.
- Improve worker data retrieval: Facilitates direct data retrieval
from workers, enhancing efficiency and reliability.
- Allow reading data directly from specific workers by specifying
their public key in `MyceliumStreamer.read()`. This improves
data retrieval flexibility and allows for distributed data access.
- Add master data reading to ensure data consistency and allow
comparison between master and worker data. This helps debug and
verify data replication.
- Implement JSON encoding/decoding for database transfer between
master and worker nodes. This enables efficient and structured
data exchange.
- Updated the master node to support multiple workers, allowing for
increased scalability and redundancy.
- Modified the worker node to simplify initialization and connection
to the master.
- Added logging statements for better monitoring and debugging.
- Removed unnecessary test data from `deduped_mycelium_master.vsh`.
- Simplified `MyceliumStreamer.listen()` to efficiently handle
incoming messages, removing redundant code and improving readability.
- Enhanced error handling in `MyceliumStreamer.listen()` for more robust
operation.
- Added worker ID to master and worker configurations for improved
identification and management.
- Implemented worker registration and data synchronization mechanisms
to enable distributed data access.
- Added a read function to retrieve data from specific workers,
enhancing data access flexibility.
- Improved logging for better monitoring and debugging of the system.
- Added continuous data writing and verification to the master node
to ensure data persistence and integrity.
- Simplified worker update handling in the `listen` function for
better efficiency and error handling. The previous implementation
had unnecessary complexity and potential for hangs.
- Changed Mycelium worker port to avoid conflict with master.
- Added debug print statements to Mycelium client for better troubleshooting.
- Removed unnecessary `SyncData` struct, simplifying data handling.
- Updated data encoding/decoding to directly use base64 for efficiency.
- Clarified message topic names for better understanding.
- Refactor database streamer to support multiple workers.
- Add master node to manage and distribute data updates.
- Implement worker nodes to receive and apply updates.
- Remove unnecessary slave node.
- Improve error handling and logging.
- Use base64 encoding for JSON compatibility in data transfer.
- Renamed the topic for database synchronization messages from
'db_sync' to 'sync_db' for clarity.
- Updated the Mycelium slave to decode base64 payload before
processing and to log received messages and their source.
- Added logging to the Mycelium streamer to track sent messages.
- Added a new feature to retrieve and log the last index from the
worker after syncing updates. This improves monitoring and
debugging capabilities.
- Refactor data synchronization logic to use Mycelium messages for
efficient updates between master and worker nodes. This removes
the previous inefficient polling method and simplifies the code.
- Update the slave node to receive and apply updates from the
master, improving synchronization efficiency and robustness.
- Change the default slave port to 9000.
- Rename `db` variable to `worker` for clarity.
- Introduces `MyceliumStreamer` for synchronizing data across a
Mycelium network, enabling distributed data access.
- Allows adding multiple worker nodes to the streamer for data
replication and redundancy.
- Provides `write` and `read` methods for seamless data
management across nodes.
- Added message reply functionality to both master and slave
nodes to enable a two-way communication flow for database
synchronization. This improves the robustness and reliability
of the database synchronization process.
- Enhanced the database synchronization process by allowing the
slave node to send the last inserted record ID to the master
node. This provides better tracking of data changes.
- Remove unnecessary public key printing in master node.
- Use variable for slave public key in master node.
- Add message receiving functionality to master node.
- Remove redundant sending logic from slave node.
- Added `deduped_mycelium_master.vsh` to demonstrate a master node
sending data.
- Added `deduped_mycelium_slave.vsh` to demonstrate a slave node
receiving data. These scripts showcase basic inter-node
communication using the Mycelium library.