├── .formatter.exs ├── .github └── workflows │ └── ci.yml ├── .gitignore ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── LICENSE.md ├── README.md ├── bench └── batch_encoding.exs ├── config └── config.exs ├── coveralls.json ├── docs └── protocol.md ├── event_logs.svg ├── lib ├── sink.ex ├── sink │ ├── application.ex │ ├── connection.ex │ ├── connection │ │ ├── client.ex │ │ ├── client │ │ │ └── connection_status.ex │ │ ├── client_connection.ex │ │ ├── client_connection_handler.ex │ │ ├── freshness.ex │ │ ├── handler.ex │ │ ├── inflight.ex │ │ ├── protocol.ex │ │ ├── protocol │ │ │ ├── batch.ex │ │ │ ├── helpers.ex │ │ │ └── snapshot.ex │ │ ├── server.ex │ │ ├── server │ │ │ └── connection_status.ex │ │ ├── server_connection_handler.ex │ │ ├── server_handler.ex │ │ ├── server_listener.ex │ │ ├── stats.ex │ │ ├── transport.ex │ │ └── transport │ │ │ └── ssl.ex │ └── event.ex └── telemetry.ex ├── mix.exs ├── mix.lock └── test ├── sink ├── connection │ ├── client │ │ ├── client_test.exs │ │ └── state_test.exs │ ├── client_connection_test.exs │ ├── freshness_test.exs │ ├── inflight_test.exs │ ├── protocol │ │ ├── batch_test.exs │ │ └── snapshot_test.exs │ ├── protocol_test.exs │ ├── server_handler_test.exs │ ├── server_listener_test.exs │ └── stats_test.exs └── connection_test.exs ├── sink_test.exs ├── support ├── certs │ ├── ca-cert.pem │ ├── certs.ex │ ├── client-cert.pem │ ├── client-key.pem │ ├── server-cert.pem │ └── server-key.pem ├── data_case.ex ├── generators.ex ├── mocks.ex └── test_event.ex └── test_helper.exs /.formatter.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/.formatter.exs -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/README.md -------------------------------------------------------------------------------- /bench/batch_encoding.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/bench/batch_encoding.exs -------------------------------------------------------------------------------- /config/config.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/config/config.exs -------------------------------------------------------------------------------- /coveralls.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/coveralls.json -------------------------------------------------------------------------------- /docs/protocol.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/docs/protocol.md -------------------------------------------------------------------------------- /event_logs.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/event_logs.svg -------------------------------------------------------------------------------- /lib/sink.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink.ex -------------------------------------------------------------------------------- /lib/sink/application.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/application.ex -------------------------------------------------------------------------------- /lib/sink/connection.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection.ex -------------------------------------------------------------------------------- /lib/sink/connection/client.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/client.ex -------------------------------------------------------------------------------- /lib/sink/connection/client/connection_status.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/client/connection_status.ex -------------------------------------------------------------------------------- /lib/sink/connection/client_connection.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/client_connection.ex -------------------------------------------------------------------------------- /lib/sink/connection/client_connection_handler.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/client_connection_handler.ex -------------------------------------------------------------------------------- /lib/sink/connection/freshness.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/freshness.ex -------------------------------------------------------------------------------- /lib/sink/connection/handler.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/handler.ex -------------------------------------------------------------------------------- /lib/sink/connection/inflight.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/inflight.ex -------------------------------------------------------------------------------- /lib/sink/connection/protocol.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/protocol.ex -------------------------------------------------------------------------------- /lib/sink/connection/protocol/batch.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/protocol/batch.ex -------------------------------------------------------------------------------- /lib/sink/connection/protocol/helpers.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/protocol/helpers.ex -------------------------------------------------------------------------------- /lib/sink/connection/protocol/snapshot.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/protocol/snapshot.ex -------------------------------------------------------------------------------- /lib/sink/connection/server.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/server.ex -------------------------------------------------------------------------------- /lib/sink/connection/server/connection_status.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/server/connection_status.ex -------------------------------------------------------------------------------- /lib/sink/connection/server_connection_handler.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/server_connection_handler.ex -------------------------------------------------------------------------------- /lib/sink/connection/server_handler.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/server_handler.ex -------------------------------------------------------------------------------- /lib/sink/connection/server_listener.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/server_listener.ex -------------------------------------------------------------------------------- /lib/sink/connection/stats.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/stats.ex -------------------------------------------------------------------------------- /lib/sink/connection/transport.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/transport.ex -------------------------------------------------------------------------------- /lib/sink/connection/transport/ssl.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/connection/transport/ssl.ex -------------------------------------------------------------------------------- /lib/sink/event.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/sink/event.ex -------------------------------------------------------------------------------- /lib/telemetry.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/lib/telemetry.ex -------------------------------------------------------------------------------- /mix.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/mix.exs -------------------------------------------------------------------------------- /mix.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/mix.lock -------------------------------------------------------------------------------- /test/sink/connection/client/client_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink/connection/client/client_test.exs -------------------------------------------------------------------------------- /test/sink/connection/client/state_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink/connection/client/state_test.exs -------------------------------------------------------------------------------- /test/sink/connection/client_connection_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink/connection/client_connection_test.exs -------------------------------------------------------------------------------- /test/sink/connection/freshness_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink/connection/freshness_test.exs -------------------------------------------------------------------------------- /test/sink/connection/inflight_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink/connection/inflight_test.exs -------------------------------------------------------------------------------- /test/sink/connection/protocol/batch_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink/connection/protocol/batch_test.exs -------------------------------------------------------------------------------- /test/sink/connection/protocol/snapshot_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink/connection/protocol/snapshot_test.exs -------------------------------------------------------------------------------- /test/sink/connection/protocol_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink/connection/protocol_test.exs -------------------------------------------------------------------------------- /test/sink/connection/server_handler_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink/connection/server_handler_test.exs -------------------------------------------------------------------------------- /test/sink/connection/server_listener_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink/connection/server_listener_test.exs -------------------------------------------------------------------------------- /test/sink/connection/stats_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink/connection/stats_test.exs -------------------------------------------------------------------------------- /test/sink/connection_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink/connection_test.exs -------------------------------------------------------------------------------- /test/sink_test.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/sink_test.exs -------------------------------------------------------------------------------- /test/support/certs/ca-cert.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/support/certs/ca-cert.pem -------------------------------------------------------------------------------- /test/support/certs/certs.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/support/certs/certs.ex -------------------------------------------------------------------------------- /test/support/certs/client-cert.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/support/certs/client-cert.pem -------------------------------------------------------------------------------- /test/support/certs/client-key.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/support/certs/client-key.pem -------------------------------------------------------------------------------- /test/support/certs/server-cert.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/support/certs/server-cert.pem -------------------------------------------------------------------------------- /test/support/certs/server-key.pem: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/support/certs/server-key.pem -------------------------------------------------------------------------------- /test/support/data_case.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/support/data_case.ex -------------------------------------------------------------------------------- /test/support/generators.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/support/generators.ex -------------------------------------------------------------------------------- /test/support/mocks.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/support/mocks.ex -------------------------------------------------------------------------------- /test/support/test_event.ex: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/support/test_event.ex -------------------------------------------------------------------------------- /test/test_helper.exs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sparkmeter/sink/HEAD/test/test_helper.exs --------------------------------------------------------------------------------