<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://o612.in/</loc></url><url><loc>https://o612.in/about/</loc></url><url><loc>https://o612.in/articles/</loc></url><url><loc>https://o612.in/articles/analyzing-java-heap-dumps-production/</loc></url><url><loc>https://o612.in/articles/byte-buddy-method-tracer-java-agent/</loc></url><url><loc>https://o612.in/articles/git-pro-electron-gui-git-profiles/</loc></url><url><loc>https://o612.in/articles/hexagonal-architecture-spring-boot-kotlin/</loc></url><url><loc>https://o612.in/articles/jvm-internals-performance-tuning-diagnostics-java-21/</loc></url><url><loc>https://o612.in/articles/processing-millions-of-records-java-streaming-pipelines/</loc></url><url><loc>https://o612.in/projects/</loc></url><url><loc>https://o612.in/projects/bpmn-dsl-kotlin/</loc></url><url><loc>https://o612.in/projects/git-pro/</loc></url><url><loc>https://o612.in/tutorials/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/01-the-search-problem-at-300-million-profiles/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/02-elasticsearch-for-relational-developers/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/03-the-rest-api-surface/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/04-search-architecture-and-synchronisation/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/05-designing-the-user-profile-index/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/06-mapping-and-analysis-in-depth/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/07-autocomplete-and-name-relevance/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/08-shards-settings-and-capacity-planning/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/09-choosing-an-elasticsearch-client/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/10-building-the-spring-boot-search-service/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/11-query-design-for-profile-search/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/12-aggregations-and-facet-counts/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/13-pagination-for-large-result-sets/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/14-backfill-outbox-relay-and-zero-downtime-reindexing/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/15-performance-optimisation-measured/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/16-operating-it-safely/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/17-failure-modes-and-the-tests-that-catch-them/</loc></url><url><loc>https://o612.in/tutorials/elasticsearch-user-search/18-from-lab-to-production/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/01-why-functional-programming-in-java/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/02-functions-and-composition/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/03-pure-functions-and-immutable-data/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/04-algebraic-data-types/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/05-option-absence-as-data/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/06-result-and-either-errors-as-values/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/07-functors-mapping-inside-context/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/08-applicatives-and-validation/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/09-monads-sequencing-dependent-steps/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/10-monad-laws/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/11-kleisli-composition/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/12-semigroups-and-monoids/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/13-folds-traversals-and-sequencing/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/14-lazy-evaluation-and-memoization/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/15-io-effects-and-pure-boundaries/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/16-reader-explicit-environments/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/17-state-explicit-transitions/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/18-async-boundaries/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/19-java-interoperability/</loc></url><url><loc>https://o612.in/tutorials/functional-programming-java/20-capstone-scheme-decision-pipeline/</loc></url><url><loc>https://o612.in/tutorials/kotlin-bpmn-dsl/</loc></url><url><loc>https://o612.in/tutorials/kotlin-bpmn-dsl/01-why-a-kotlin-dsl-for-bpmn/</loc></url><url><loc>https://o612.in/tutorials/kotlin-bpmn-dsl/02-modeling-collaborations-pools-lanes/</loc></url><url><loc>https://o612.in/tutorials/kotlin-bpmn-dsl/03-type-safe-dsl-builders/</loc></url><url><loc>https://o612.in/tutorials/kotlin-bpmn-dsl/04-procurement-collaboration/</loc></url><url><loc>https://o612.in/tutorials/kotlin-bpmn-dsl/05-validation-first-class/</loc></url><url><loc>https://o612.in/tutorials/kotlin-bpmn-dsl/06-semantic-xml-generation/</loc></url><url><loc>https://o612.in/tutorials/kotlin-bpmn-dsl/07-bpmn-di-layout/</loc></url><url><loc>https://o612.in/tutorials/kotlin-bpmn-dsl/08-testing-rendering/</loc></url><url><loc>https://o612.in/tutorials/kotlin-bpmn-dsl/09-flowable-integration/</loc></url><url><loc>https://o612.in/tutorials/kotlin-bpmn-dsl/10-packaging-evolution/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/01-modular-monolith-as-a-starting-architecture/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/02-decomposition-by-business-capability/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/03-database-per-service/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/04-api-gateway-and-backend-for-frontend/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/05-service-discovery-and-centralized-configuration/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/06-synchronous-communication-rest-and-grpc/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/07-event-driven-architecture/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/08-publish-subscribe-and-event-notification/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/09-event-sourcing/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/10-cqrs/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/11-saga-choreography-and-orchestration/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/12-transactional-outbox-and-idempotent-consumer/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/13-strangler-fig-migration-pattern/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/14-anti-corruption-layer/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/15-sidecar-and-ambassador-patterns/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/16-circuit-breaker-retry-timeout-bulkhead-rate-limiting/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/17-cache-aside-and-distributed-caching/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/18-competing-consumers-and-work-queues/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/19-dead-letter-queues-and-retry-topics/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/20-api-composition-and-aggregator-services/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/21-service-mesh-and-zero-trust/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/22-observability-logs-metrics-traces/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/23-contract-testing-and-consumer-driven-contracts/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/24-blue-green-canary-feature-flags/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/25-kubernetes-native-microservice-design/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/26-security-oauth2-oidc-jwt-rbac-abac/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/27-multi-tenancy-patterns/</loc></url><url><loc>https://o612.in/tutorials/microservices-patterns-spring-boot-kotlin/28-workflow-orchestration-bpmn-vs-sagas/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/01-a-vocabulary-for-measuring/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/02-a-reproducible-test-environment/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/03-instrument-before-you-measure/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/04-the-order-management-api/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/05-realistic-test-data/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/06-gatling-simulations/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/07-running-load-tests-correctly/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/08-reading-the-results/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/09-diagnosing-spring-boot-bottlenecks/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/10-evidence-based-optimizations/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/11-stress-spike-and-soak/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/12-performance-tests-in-ci-and-kubernetes/</loc></url><url><loc>https://o612.in/tutorials/performance-testing-spring-boot-apis/13-the-production-checklist/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/00-what-we-are-building/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/01-multi-module-gradle-scaffold/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/02-operations-simulator/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/03-basic-agent-api/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/04-runbook-ingestion-pipeline/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/05-rag-citations/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/06-structured-output/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/07-kotlin-mcp-server/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/08-mcp-client-bounded-tool-loop/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/09-oauth-tenant-authorization/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/10-write-tools-human-approval/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/11-guardrails-resilience/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/12-end-to-end-observability/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/13-evaluation-suite/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/14-performance-resilience-testing/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/15-compose-kubernetes-deployment/</loc></url><url><loc>https://o612.in/tutorials/production-ai-agent-jvm/16-production-hardening-final/</loc></url></urlset>