@Override
    public Optional<DispatchEvent> build(final DataChangedEvent event) {
        if (event.getKey().startsWith(ComputeNode.getOnlineInstanceNodePath())) {
            return createInstanceEvent(event);
        }
        return Optional.empty();
    }
@Test
    void assertComputeNodeOnline() {
        Optional<DispatchEvent> actual = new ComputeNodeOnlineDispatchEventBuilder()
                .build(new DataChangedEvent("/nodes/compute_nodes/online/proxy/foo_instance_id", "{attribute: 127.0.0.1@3307,version: 1}", Type.ADDED));
        assertTrue(actual.isPresent());
        InstanceOnlineEvent event = (InstanceOnlineEvent) actual.get();
        assertThat(event.getInstanceMetaData().getId(), is("foo_instance_id"));
        assertThat(event.getInstanceMetaData().getIp(), is("127.0.0.1"));
        assertThat(event.getInstanceMetaData().getType(), is(InstanceType.PROXY));
        assertThat(event.getInstanceMetaData().getVersion(), is("1"));
        assertThat(event.getInstanceMetaData().getAttributes(), is("127.0.0.1@3307"));
    }