Spring Boot/Java Console App MQTT message listening #2
Budget: $10 – $80 USD
We require a skilled MQTT & Spring Boot & Java developer.
This is a test project to proof your expertise to aboard you for a longer project.
You have to implement a console app which is capable of listening to MQTT server queues with different levels of QoS.
This messages have to be persisted to a database with all message details.
Key functionalities required:
- implement a docker to startup a fresh MQTT server with a bunch of queues and a set of QoS levels per queue
- implement a springboot MQTT listener (push notification) which fetches incoming MQTT messages
- implement a schedule based MQTT fetcher (pull notification), which works as a fallback, if the MQTT listener is failing
- persist the full message details decoded into the database (all transport details, all headers, full decoded payload, along with the full binary message as base64 CLOB)
- on startup of app, the schedulers and the listener shall be auto registered
The java console application must be primarily operable on a Linux system, though it should also function flawlessly on Windows and MacOS for such developers by defaulting as Java ability (best practices) on all operating systems.
Strong Java programming skills, expertise in working with MQTT and message decoding
The process to implement:
MS0:
- suggest optimal MQTT server for docker, to be well configurable on fresh startup/init AND on editing settings during development phase
- suggest optimal MQTT message set
- suggest optimal MQTT queue set to be able to test all cornercases
MS1:
- implement unit tests to execute as a group to push predefined messages to the queues (with payloads and with QoS variations)
- goals:
... - test if MQTT server is working
... - provide ability to test the listener well, with predefined messages
MS2:
- implement the MQTT message entity/ies
- implement the MQTT listeners
- implement the Scheduler to fetch the MQTT messages
- persist the message Entities to database (h2 and postgresql-dockerized)
- implement unit tests based on unit tests of MS1 and on MS0 definitions
create a self running jar, which is containing all deps and can be executed via cmd (default of spring boot)
java -jar <yourjar>.jar
MS3:
- enable TLS for communication with MQTT server
Budget?
will not be disclosed, place your best bid to get considered
What is next?
We will share you a NDA and afterwards a paid test task.
Payment?
- you estimate in a WBS (optimistic, expected, pessimistic, where optimistic < expected < pessimistic) after getting the task
- we discuss about clearances and effort
- we mutually agree to effort
- we assign you the task after mutually agreed
- you implement, test and deliver
- you provide also unit /integration tests to ensure code is always working
- you document each required step to make interaction of systems to work
- we test on our premise (you maybe help to fix issues)
- we pay
(basically the rules of freelancer)
Closed book vs open book?
We work only on open book.
Closed book means you are unwilling to define a WBS for the work and you add only a price tag to the task.
We are sorry we will not hire you in such a case!
Deliveries?
- in our on premise git (access will be granted to you)
- full sources
- multiple samples of body and responses of the api in test/resources which will be used as unit tests
- maven
- libs, need prior confirm and we prefer to use mostly latest stable versions
- JDK 17 (mostly LTS)
- your code is working on our end too
- your code passes our CI build (with provided maven pom.xml can be checked)
- you may require to help us here on setup
- docker compose to startup all required runtimes
- we require, depending on availability and on complexity 2-4 weeks test time per milestone. Usually clearly less
This is a test project to proof your expertise to aboard you for a longer project.
You have to implement a console app which is capable of listening to MQTT server queues with different levels of QoS.
This messages have to be persisted to a database with all message details.
Key functionalities required:
- implement a docker to startup a fresh MQTT server with a bunch of queues and a set of QoS levels per queue
- implement a springboot MQTT listener (push notification) which fetches incoming MQTT messages
- implement a schedule based MQTT fetcher (pull notification), which works as a fallback, if the MQTT listener is failing
- persist the full message details decoded into the database (all transport details, all headers, full decoded payload, along with the full binary message as base64 CLOB)
- on startup of app, the schedulers and the listener shall be auto registered
The java console application must be primarily operable on a Linux system, though it should also function flawlessly on Windows and MacOS for such developers by defaulting as Java ability (best practices) on all operating systems.
Strong Java programming skills, expertise in working with MQTT and message decoding
The process to implement:
MS0:
- suggest optimal MQTT server for docker, to be well configurable on fresh startup/init AND on editing settings during development phase
- suggest optimal MQTT message set
- suggest optimal MQTT queue set to be able to test all cornercases
MS1:
- implement unit tests to execute as a group to push predefined messages to the queues (with payloads and with QoS variations)
- goals:
... - test if MQTT server is working
... - provide ability to test the listener well, with predefined messages
MS2:
- implement the MQTT message entity/ies
- implement the MQTT listeners
- implement the Scheduler to fetch the MQTT messages
- persist the message Entities to database (h2 and postgresql-dockerized)
- implement unit tests based on unit tests of MS1 and on MS0 definitions
create a self running jar, which is containing all deps and can be executed via cmd (default of spring boot)
java -jar <yourjar>.jar
MS3:
- enable TLS for communication with MQTT server
Budget?
will not be disclosed, place your best bid to get considered
What is next?
We will share you a NDA and afterwards a paid test task.
Payment?
- you estimate in a WBS (optimistic, expected, pessimistic, where optimistic < expected < pessimistic) after getting the task
- we discuss about clearances and effort
- we mutually agree to effort
- we assign you the task after mutually agreed
- you implement, test and deliver
- you provide also unit /integration tests to ensure code is always working
- you document each required step to make interaction of systems to work
- we test on our premise (you maybe help to fix issues)
- we pay
(basically the rules of freelancer)
Closed book vs open book?
We work only on open book.
Closed book means you are unwilling to define a WBS for the work and you add only a price tag to the task.
We are sorry we will not hire you in such a case!
Deliveries?
- in our on premise git (access will be granted to you)
- full sources
- multiple samples of body and responses of the api in test/resources which will be used as unit tests
- maven
- libs, need prior confirm and we prefer to use mostly latest stable versions
- JDK 17 (mostly LTS)
- your code is working on our end too
- your code passes our CI build (with provided maven pom.xml can be checked)
- you may require to help us here on setup
- docker compose to startup all required runtimes
- we require, depending on availability and on complexity 2-4 weeks test time per milestone. Usually clearly less