Köhnə monolit sistemi birbaşa atıb yenidən yazmaq əvəzinə, onu parça-parça əvəz edərək tədrici miqrasiya etmək strategiyası.
Monolit sistemi tam yenidən yazmaq (Big Bang Rewrite) çox risklidir. Bu pattern ilə hissə-hissə, təhlükəsiz miqrasiya etmək mümkündür.
Tropik Strangler Fig ağacı başqa ağacın ətrafında böyüyür, yavaş-yavaş onu tamamilə bürüyür və sona çatanda köhnə ağac ölür.
Proxy/Facade qoyulur. Yeni funksionallıq mikroservisdə yazılır. Köhnə funksionallıq tədricən söndürülür.
@RestController
public class StranglerFigProxy {
@Value("${monolith.url}") String monolithUrl;
@Value("${new-user-service.url}") String userServiceUrl;
private final RestTemplate rest = new RestTemplate();
@GetMapping("/api/users/{id}")
public ResponseEntity<?> getUser(@PathVariable Long id) {
// ✅ Yeni servis artıq hazırdır — oraya yönləndir
return rest.getForEntity(userServiceUrl + "/users/" + id, Object.class);
}
@GetMapping("/api/orders/{id}")
public ResponseEntity<?> getOrder(@PathVariable Long id) {
// ⏳ Hələ köhnə monolitdə — keçid gözlənilir
return rest.getForEntity(monolithUrl + "/orders/" + id, Object.class);
}
}