public void start(Configuration configuration, final NamespacesHub namespacesHub) {
this.configuration = configuration;
scheduler = new CancelableScheduler(configuration.getHeartbeatThreadPoolSize());
ackManager = new AckManager(scheduler);
JsonSupport jsonSupport = configuration.getJsonSupport();
Encoder encoder = new Encoder(configuration, jsonSupport);
Decoder decoder = new Decoder(jsonSupport, ackManager);