com.github.squirrelgrip:scientist-yxorp-core

Parent pom providing dependency and plugin management for applications built with Maven

License

License

GroupId

GroupId

com.github.squirrelgrip
ArtifactId

ArtifactId

scientist-yxorp-core
Last Version

Last Version

0.0.3
Release Date

Release Date

Type

Type

jar
Description

Description

Parent pom providing dependency and plugin management for applications built with Maven
Project URL

Project URL

https://projects.spring.io/spring-boot/#/spring-boot-starter-parent/scientist-yxorp-core

Download scientist-yxorp-core

How to add to project

<!-- https://jarcasting.com/artifacts/com.github.squirrelgrip/scientist-yxorp-core/ -->
<dependency>
    <groupId>com.github.squirrelgrip</groupId>
    <artifactId>scientist-yxorp-core</artifactId>
    <version>0.0.3</version>
</dependency>
// https://jarcasting.com/artifacts/com.github.squirrelgrip/scientist-yxorp-core/
implementation 'com.github.squirrelgrip:scientist-yxorp-core:0.0.3'
// https://jarcasting.com/artifacts/com.github.squirrelgrip/scientist-yxorp-core/
implementation ("com.github.squirrelgrip:scientist-yxorp-core:0.0.3")
'com.github.squirrelgrip:scientist-yxorp-core:jar:0.0.3'
<dependency org="com.github.squirrelgrip" name="scientist-yxorp-core" rev="0.0.3">
  <artifact name="scientist-yxorp-core" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.github.squirrelgrip', module='scientist-yxorp-core', version='0.0.3')
)
libraryDependencies += "com.github.squirrelgrip" % "scientist-yxorp-core" % "0.0.3"
[com.github.squirrelgrip/scientist-yxorp-core "0.0.3"]

Dependencies

compile (6)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-stdlib jar 1.3.61
org.apache.httpcomponents : httpclient jar 4.5.11
com.github.squirrelgrip : Scientist4KCore jar 0.3.0
commons-io : commons-io jar 2.6
org.springframework.boot : spring-boot-starter-jetty jar 2.2.5.RELEASE
io.dropwizard.metrics5 : metrics-core jar 5.0.0

Project Modules

There are no modules declared in this project.

Build Status

Scientist Yxorp

This is a simple reverse proxy to allow for testing http targets while comparing to an existing http control.

Overview

The idea is that given an existing web service, there is a requirement to develop a new, and tested, web service and check that the results from both are consistent.

How it works

Given an existing web server, configure this proxy to run on a different host and/or port. In the configuration of the proxy, you provide the existing web servers address as the candidate url. You will also provide the candidate url, which is the web server that is being built.

Every request sent to the proxy will be firstly recorded and then the request will be translated and sent to both the control and candidate web servers.Each of the servers will generate a respoinse and send it back to the proxy, which will compare both responses and determine if they match. If they match, YAY, al good. However if they do not match, the responses from both will be logged for further analysis.

Once the response is received from the control, that response will be sent back to the caller and the caller should be none the wiser that all of that has occurred.

Future

  • Support for HTTPS targets
  • Support for Client Certificates (would require a man in the middle configuration and client certificate)
  • Log response for control, candidate or both
  • Attach a RequestId HEADER to the response in order to track
  • Store performance information with the RequestId
  • Incorporate a REST API to allow controlling of the experiment
  • Allow for multiple experiments to be run, controlled through a REST API
  • Testing Control and Candidate with different scenarios

Versions

Version
0.0.3
0.0.2
0.0.1