UNPKG

hamok

Version:

Lightweight Distributed Object Storage on RAFT consensus algorithm

49 lines (37 loc) 1.12 kB
import { Hamok } from 'hamok'; (async () => { const server_1 = new Hamok(); const server_2 = new Hamok(); const storage_1 = server_1.createMap<string, number>({ mapId: 'my-replicated-storage', }); const storage_2 = server_2.createMap<string, number>({ mapId: 'my-replicated-storage', }); server_1.on('message', server_2.accept.bind(server_2)); server_2.on('message', server_1.accept.bind(server_1)); await Promise.all([ server_1.join(), server_2.join(), ]); console.log('Setting value in storage on server_1 for key-1 to 1'); console.log('Setting value in storage on server_2 for key-2 to 2'); await Promise.all([ storage_1.set('key-1', 1), storage_2.set('key-2', 2), ]); await Promise.all([ server_1.waitUntilCommitHead(), server_2.waitUntilCommitHead(), ]) console.log('value for key-2 by server_1:', storage_1.get('key-2')); console.log('value for key-1 by server_2:', storage_1.get('key-1')); await Promise.all([ server_1.leave(), server_2.leave(), ]); console.log('Servers left'); // if you want to close resources server_1.close(); server_2.close(); })();