This reference covers the APIs for managing interlays in Eden-MDBS.
Interlays are traffic routing layers that direct requests to underlying endpoints. They enable:
Interlays expose a local port that proxies traffic to the target endpoint, allowing seamless switching during migrations.
Get all interlays in your organization.
GET /api/v1/interlays
Authorization: Bearer <token>curl http://{host}:8000/api/v1/interlays \
-H "Authorization: Bearer $TOKEN"{
"status": "success",
"data": {
"id": "redis_interlay",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"endpoint": "550e8400-e29b-41d4-a716-446655440001",
"port": 6366,
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
}Get details of a specific interlay.
GET /api/v1/interlays/{interlay}
Authorization: Bearer <token>| Parameter | Type | Description |
|---|---|---|
interlay | string | Interlay identifier |
curl http://{host}:8000/api/v1/interlays/redis_interlay \
-H "Authorization: Bearer $TOKEN" \
-H "X-Eden-Verbose: true"{
"status": "success",
"data": {
"id": "redis_interlay",
"uuid": "550e8400-e29b-41d4-a716-446655440000",
"endpoint": "550e8400-e29b-41d4-a716-446655440001",
"port": 6366,
"tls": false,
"migration": null,
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
}
}Create a new interlay.
POST /api/v1/interlays
Content-Type: application/json
Authorization: Bearer <token>| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Unique interlay identifier |
endpoint | string | Yes | Target endpoint UUID |
port | integer | Yes | Local port to expose for proxy traffic |
settings | object | No | Additional interlay settings |
tls | boolean | No | Enable TLS for the proxy (default: false) |
curl http://{host}:8000/api/v1/interlays \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"id": "redis_interlay",
"endpoint": "550e8400-e29b-41d4-a716-446655440001",
"port": 6366,
"settings": {},
"tls": false
}'{
"status": "success",
"data": {
"id": "redis_interlay",
"uuid": "550e8400-e29b-41d4-a716-446655440000"
}
}Remove an interlay.
DELETE /api/v1/interlays/{interlay}
Authorization: Bearer <token>curl http://{host}:8000/api/v1/interlays/redis_interlay \
-H "Authorization: Bearer $TOKEN" \
-X DELETE{
"status": "success",
"data": "Interlay deleted successfully"
}Interlays can be associated with migrations for traffic switching between endpoints.
POST /api/v1/migrations/{migration}/interlay/{interlay}
Content-Type: application/json
Authorization: Bearer <token>| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Migration interlay identifier |
endpoint | string | Yes | New target endpoint ID |
description | string | No | Description of the migration |
migration_strategy | object | Yes | Migration strategy configuration |
migration_data | object | No | Data movement configuration |
migration_rules | object | Yes | Traffic and error handling rules |
testing_validation | object | No | Validation configuration |
| Field | Type | Description |
|---|---|---|
traffic | object | Read/write traffic routing rules |
error | string | Error handling (DoNothing, Rollback) |
rollback | string | Rollback behavior (Ignore, Revert) |
completion | object | Completion milestone settings |
| Field | Type | Description |
|---|---|---|
read | string | Read traffic routing (Old, New, Replicated) |
write | string | Write traffic routing (Old, New, Both) |
curl http://{host}:8000/api/v1/migrations/test_migration/interlay/redis_interlay \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"id": "migration_relay",
"endpoint": "redis_test2",
"description": "Redis migration interlay",
"migration_strategy": {
"type": "big_bang",
"durability": true
},
"migration_data": {
"Scan": {
"replace": "None"
}
},
"migration_rules": {
"traffic": {
"read": "Replicated",
"write": "New"
},
"error": "DoNothing",
"rollback": "Ignore",
"completion": {
"milestone": "Immediate",
"require_manual_approval": false
}
}
}'{
"status": "success",
"data": "added Interlay to migration"
}Use interlays to switch between endpoints without changing application code:
Interlays integrate with the migration system for gradual traffic shifts:
| Operation | Required Access |
|---|---|
| List interlays | Read |
| Get interlay | Read |
| Create interlay | Admin |
| Start interlay | Admin |
| Delete interlay | Admin |
{
"error": "Not Found",
"message": "Interlay 'cache_interlay' does not exist"
}{
"error": "Not Found",
"message": "Endpoint 'redis_primary' does not exist"
}{
"error": "Migration error",
"message": "Interlay Schema already has an active migration"
}