You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ar...@apache.org on 2022/09/02 20:20:23 UTC

[fineract] branch develop updated: FINERACT-1694-5: Reorganizing business event packages next to external events

This is an automated email from the ASF dual-hosted git repository.

arnold pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new 1f1cbfe07 FINERACT-1694-5: Reorganizing business event packages next to external events
1f1cbfe07 is described below

commit 1f1cbfe0748ac02567276e506be85101804ff91e
Author: Arnold Galovics <ga...@gmail.com>
AuthorDate: Fri Sep 2 14:26:16 2022 +0200

    FINERACT-1694-5: Reorganizing business event packages next to external events
---
 build.gradle                                       |  4 +-
 fineract-provider/build.gradle                     |  1 +
 .../service/EmailCampaignDomainServiceImpl.java    | 10 ++---
 .../sms/service/SmsCampaignDomainServiceImpl.java  | 22 +++++-----
 .../event/business}/BusinessEventListener.java     |  4 +-
 .../business}/domain/AbstractBusinessEvent.java    |  2 +-
 .../event/business}/domain/BulkBusinessEvent.java  |  2 +-
 .../event/business}/domain/BusinessEvent.java      |  2 +-
 .../domain/client/ClientActivateBusinessEvent.java |  2 +-
 .../domain/client/ClientBusinessEvent.java         |  4 +-
 .../domain/client/ClientCreateBusinessEvent.java   |  2 +-
 .../domain/client/ClientRejectBusinessEvent.java   |  2 +-
 .../deposit/FixedDepositAccountBusinessEvent.java  |  4 +-
 .../FixedDepositAccountCreateBusinessEvent.java    |  2 +-
 .../RecurringDepositAccountBusinessEvent.java      |  4 +-
 ...RecurringDepositAccountCreateBusinessEvent.java |  2 +-
 .../domain/group/CentersCreateBusinessEvent.java   |  2 +-
 .../domain/group/GroupsBusinessEvent.java          |  4 +-
 .../domain/group/GroupsCreateBusinessEvent.java    |  2 +-
 .../loan/LoanAcceptTransferBusinessEvent.java      |  2 +-
 .../loan/LoanAdjustTransactionBusinessEvent.java   |  4 +-
 .../loan/LoanApplyOverdueChargeBusinessEvent.java  |  2 +-
 .../domain/loan/LoanApprovedBusinessEvent.java     |  2 +-
 .../business}/domain/loan/LoanBusinessEvent.java   |  4 +-
 .../loan/LoanCloseAsRescheduleBusinessEvent.java   |  2 +-
 .../domain/loan/LoanCloseBusinessEvent.java        |  2 +-
 .../domain/loan/LoanCreatedBusinessEvent.java      |  2 +-
 .../domain/loan/LoanDisbursalBusinessEvent.java    |  2 +-
 .../loan/LoanInitiateTransferBusinessEvent.java    |  2 +-
 .../LoanInterestRecalculationBusinessEvent.java    |  2 +-
 .../loan/LoanReassignOfficerBusinessEvent.java     |  2 +-
 .../loan/LoanRejectTransferBusinessEvent.java      |  2 +-
 .../domain/loan/LoanRejectedBusinessEvent.java     |  2 +-
 .../loan/LoanRemoveOfficerBusinessEvent.java       |  2 +-
 .../domain/loan/LoanUndoApprovalBusinessEvent.java |  2 +-
 .../loan/LoanUndoDisbursalBusinessEvent.java       |  2 +-
 .../loan/LoanUndoLastDisbursalBusinessEvent.java   |  2 +-
 .../loan/LoanWithdrawTransferBusinessEvent.java    |  2 +-
 .../loan/charge/LoanAddChargeBusinessEvent.java    |  2 +-
 .../loan/charge/LoanChargeBusinessEvent.java       |  4 +-
 .../loan/charge/LoanDeleteChargeBusinessEvent.java |  2 +-
 .../loan/charge/LoanUpdateChargeBusinessEvent.java |  2 +-
 .../loan/charge/LoanWaiveChargeBusinessEvent.java  |  2 +-
 .../charge/LoanWaiveChargeUndoBusinessEvent.java   |  2 +-
 .../loan/product/LoanProductBusinessEvent.java     |  4 +-
 .../product/LoanProductCreateBusinessEvent.java    |  2 +-
 .../LoanChargePaymentPostBusinessEvent.java        |  2 +-
 .../LoanChargePaymentPreBusinessEvent.java         |  4 +-
 .../transaction/LoanChargeRefundBusinessEvent.java |  2 +-
 .../LoanCreditBalanceRefundPostBusinessEvent.java  |  2 +-
 .../LoanCreditBalanceRefundPreBusinessEvent.java   |  4 +-
 .../LoanForeClosurePostBusinessEvent.java          |  2 +-
 .../LoanForeClosurePreBusinessEvent.java           |  4 +-
 .../transaction/LoanRefundPostBusinessEvent.java   |  2 +-
 .../transaction/LoanRefundPreBusinessEvent.java    |  4 +-
 .../transaction/LoanTransactionBusinessEvent.java  |  4 +-
 ...TransactionGoodwillCreditPostBusinessEvent.java |  2 +-
 ...nTransactionGoodwillCreditPreBusinessEvent.java |  4 +-
 ...nTransactionMakeRepaymentPostBusinessEvent.java |  2 +-
 ...anTransactionMakeRepaymentPreBusinessEvent.java |  4 +-
 ...ctionMerchantIssuedRefundPostBusinessEvent.java |  2 +-
 ...actionMerchantIssuedRefundPreBusinessEvent.java |  4 +-
 ...anTransactionPayoutRefundPostBusinessEvent.java |  2 +-
 ...oanTransactionPayoutRefundPreBusinessEvent.java |  4 +-
 ...ransactionRecoveryPaymentPostBusinessEvent.java |  2 +-
 ...TransactionRecoveryPaymentPreBusinessEvent.java |  4 +-
 .../LoanUndoWrittenOffBusinessEvent.java           |  2 +-
 .../LoanWaiveInterestBusinessEvent.java            |  2 +-
 .../LoanWrittenOffPostBusinessEvent.java           |  2 +-
 .../LoanWrittenOffPreBusinessEvent.java            |  4 +-
 .../savings/SavingsAccountBusinessEvent.java       |  4 +-
 .../savings/SavingsActivateBusinessEvent.java      |  2 +-
 .../savings/SavingsApproveBusinessEvent.java       |  2 +-
 .../domain/savings/SavingsCloseBusinessEvent.java  |  2 +-
 .../domain/savings/SavingsCreateBusinessEvent.java |  2 +-
 .../savings/SavingsPostInterestBusinessEvent.java  |  2 +-
 .../domain/savings/SavingsRejectBusinessEvent.java |  2 +-
 .../SavingsAccountTransactionBusinessEvent.java    |  4 +-
 .../transaction/SavingsDepositBusinessEvent.java   |  2 +-
 .../SavingsWithdrawalBusinessEvent.java            |  2 +-
 .../share/ShareAccountApproveBusinessEvent.java    |  2 +-
 .../domain/share/ShareAccountBusinessEvent.java    |  4 +-
 .../share/ShareAccountCreateBusinessEvent.java     |  2 +-
 .../ShareProductDividentsCreateBusinessEvent.java  |  4 +-
 .../service/BusinessEventNotifierService.java      |  6 +--
 .../service/BusinessEventNotifierServiceImpl.java  |  6 +--
 .../service/DelayedExternalEventService.java       |  4 +-
 .../external/service/ExternalEventService.java     |  2 +-
 ...efaultExternalEventIdempotencyKeyGenerator.java |  2 +-
 .../ExternalEventIdempotencyKeyGenerator.java      |  2 +-
 .../BusinessEventSerializerFactory.java            |  2 +-
 .../serializer/BusinessEventSerializer.java        |  2 +-
 .../client/ClientBusinessEventSerializer.java      |  4 +-
 ...FixedDepositAccountBusinessEventSerializer.java |  4 +-
 .../group/GroupsBusinessEventSerializer.java       |  4 +-
 ...anAdjustTransactionBusinessEventSerializer.java |  4 +-
 .../loan/LoanBusinessEventSerializer.java          |  4 +-
 .../loan/LoanChargeBusinessEventSerializer.java    |  4 +-
 .../loan/LoanProductBusinessEventSerializer.java   |  4 +-
 .../LoanTransactionBusinessEventSerializer.java    |  4 +-
 ...rringDepositAccountBusinessEventSerializer.java |  4 +-
 .../SavingsAccountBusinessEventSerializer.java     |  4 +-
 ...sAccountTransactionBusinessEventSerializer.java |  4 +-
 .../share/ShareAccountBusinessEventSerializer.java |  4 +-
 ...ductDividentsCreateBusinessEventSerializer.java |  4 +-
 .../service/NotificationDomainServiceImpl.java     | 42 +++++++++---------
 ...lientWritePlatformServiceJpaRepositoryImpl.java |  8 ++--
 ...TypesWritePlatformServiceJpaRepositoryImpl.java |  6 +--
 .../domain/LoanAccountDomainServiceJpa.java        | 42 +++++++++---------
 .../service/GuarantorDomainServiceImpl.java        | 18 ++++----
 ...ationWritePlatformServiceJpaRepositoryImpl.java | 10 ++---
 .../service/LoanArrearsAgingServiceImpl.java       | 26 +++++------
 .../LoanWritePlatformServiceJpaRepositoryImpl.java | 50 +++++++++++-----------
 ...oductWritePlatformServiceJpaRepositoryImpl.java |  4 +-
 .../domain/SavingsAccountDomainServiceJpa.java     |  6 +--
 ...ocessWritePlatformServiceJpaRepositoryImpl.java |  6 +--
 ...countWritePlatformServiceJpaRepositoryImpl.java |  8 ++--
 ...ocessWritePlatformServiceJpaRepositoryImpl.java |  8 ++--
 ...countWritePlatformServiceJpaRepositoryImpl.java |  6 +--
 ...oductWritePlatformServiceJpaRepositoryImpl.java |  4 +-
 .../service/DelayedExternalEventServiceTest.java   |  4 +-
 .../external/service/ExternalEventServiceTest.java |  2 +-
 122 files changed, 287 insertions(+), 286 deletions(-)

diff --git a/build.gradle b/build.gradle
index 68b87f05f..8d570cec2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -279,8 +279,6 @@ configure(project.fineractJavaProjects) {
     sourceSets.main.output.resourcesDir = sourceSets.main.java.outputDir
     sourceSets.test.output.resourcesDir = sourceSets.test.java.outputDir
 
-    check.dependsOn('cucumber')
-
     configurations {
         implementation.setCanBeResolved(true)
         api.setCanBeResolved(true)
@@ -422,6 +420,8 @@ configure(project.fineractJavaProjects) {
                     "InvalidBlockTag",
                     "JavaUtilDate", // TODO FINERACT-1298
                     "ReturnValueIgnored",
+                    "DirectInvocationOnMock",
+                    "CanIgnoreReturnValueSuggester",
                     "SameNameButDifferent", // Until errorprone recognizes Lombok
                     "MultiVariableDeclaration" // Until errorprone recognizes Lombok
                     )
diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle
index f9e81f36d..d67b21d87 100644
--- a/fineract-provider/build.gradle
+++ b/fineract-provider/build.gradle
@@ -26,6 +26,7 @@ apply plugin: 'com.gorylenko.gradle-git-properties'
 apply plugin: 'io.swagger.core.v3.swagger-gradle-plugin'
 apply plugin: 'com.google.cloud.tools.jib'
 
+check.dependsOn('cucumber')
 
 compileJava.doLast {
     def mainSS = sourceSets.main
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignDomainServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignDomainServiceImpl.java
index c7c5c8c37..0c0cafb3a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignDomainServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/email/service/EmailCampaignDomainServiceImpl.java
@@ -29,11 +29,11 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.fineract.infrastructure.campaigns.email.domain.EmailCampaign;
 import org.apache.fineract.infrastructure.campaigns.email.domain.EmailCampaignRepository;
 import org.apache.fineract.infrastructure.campaigns.sms.constants.SmsCampaignTriggerType;
-import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanApprovedBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanRejectedBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionMakeRepaymentPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
+import org.apache.fineract.infrastructure.event.business.BusinessEventListener;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanApprovedBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanRejectedBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionMakeRepaymentPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 import org.springframework.stereotype.Service;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDomainServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDomainServiceImpl.java
index b08ba403d..aa7c43d88 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDomainServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/campaigns/sms/service/SmsCampaignDomainServiceImpl.java
@@ -40,23 +40,23 @@ import org.apache.fineract.infrastructure.campaigns.sms.domain.SmsCampaign;
 import org.apache.fineract.infrastructure.campaigns.sms.domain.SmsCampaignRepository;
 import org.apache.fineract.infrastructure.campaigns.sms.exception.SmsRuntimeException;
 import org.apache.fineract.infrastructure.campaigns.sms.serialization.SmsCampaignValidator;
+import org.apache.fineract.infrastructure.event.business.BusinessEventListener;
+import org.apache.fineract.infrastructure.event.business.domain.client.ClientActivateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.client.ClientRejectBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanApprovedBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanRejectedBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionMakeRepaymentPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsActivateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsRejectBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.transaction.SavingsDepositBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.transaction.SavingsWithdrawalBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.sms.domain.SmsMessage;
 import org.apache.fineract.infrastructure.sms.domain.SmsMessageRepository;
 import org.apache.fineract.infrastructure.sms.scheduler.SmsMessageScheduledJobService;
 import org.apache.fineract.organisation.office.domain.Office;
 import org.apache.fineract.organisation.office.domain.OfficeRepository;
 import org.apache.fineract.organisation.office.exception.OfficeNotFoundException;
-import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
-import org.apache.fineract.portfolio.businessevent.domain.client.ClientActivateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.client.ClientRejectBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanApprovedBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanRejectedBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionMakeRepaymentPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsActivateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsRejectBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.transaction.SavingsDepositBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.transaction.SavingsWithdrawalBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.client.domain.Client;
 import org.apache.fineract.portfolio.group.domain.Group;
 import org.apache.fineract.portfolio.group.domain.GroupRepository;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/BusinessEventListener.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/BusinessEventListener.java
similarity index 89%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/BusinessEventListener.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/BusinessEventListener.java
index 2d1505485..62cb90362 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/BusinessEventListener.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/BusinessEventListener.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent;
+package org.apache.fineract.infrastructure.event.business;
 
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
 
 /**
  * The interface to be implemented by classes that want to be informed when a Business Event executes. example: on
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/AbstractBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/AbstractBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/AbstractBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/AbstractBusinessEvent.java
index 3faacfc66..741a92664 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/AbstractBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/AbstractBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain;
+package org.apache.fineract.infrastructure.event.business.domain;
 
 import lombok.RequiredArgsConstructor;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BulkBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/BulkBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BulkBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/BulkBusinessEvent.java
index 11862dce6..690a08a8c 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BulkBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/BulkBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain;
+package org.apache.fineract.infrastructure.event.business.domain;
 
 import java.util.List;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/BusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/BusinessEvent.java
index 3f6b2403a..53720b926 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/BusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/BusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain;
+package org.apache.fineract.infrastructure.event.business.domain;
 
 public interface BusinessEvent<T> {
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientActivateBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/client/ClientActivateBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientActivateBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/client/ClientActivateBusinessEvent.java
index f42ce00a9..031c51099 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientActivateBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/client/ClientActivateBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.client;
+package org.apache.fineract.infrastructure.event.business.domain.client;
 
 import org.apache.fineract.portfolio.client.domain.Client;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/client/ClientBusinessEvent.java
similarity index 86%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/client/ClientBusinessEvent.java
index 6861f71e5..7ddd40083 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/client/ClientBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.client;
+package org.apache.fineract.infrastructure.event.business.domain.client;
 
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 import org.apache.fineract.portfolio.client.domain.Client;
 
 public abstract class ClientBusinessEvent extends AbstractBusinessEvent<Client> {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientCreateBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/client/ClientCreateBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientCreateBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/client/ClientCreateBusinessEvent.java
index 8c7be9754..d2389de8e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientCreateBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/client/ClientCreateBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.client;
+package org.apache.fineract.infrastructure.event.business.domain.client;
 
 import org.apache.fineract.portfolio.client.domain.Client;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientRejectBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/client/ClientRejectBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientRejectBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/client/ClientRejectBusinessEvent.java
index 8a7ef74cf..763fcabd7 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/client/ClientRejectBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/client/ClientRejectBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.client;
+package org.apache.fineract.infrastructure.event.business.domain.client;
 
 import org.apache.fineract.portfolio.client.domain.Client;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/FixedDepositAccountBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/deposit/FixedDepositAccountBusinessEvent.java
similarity index 87%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/FixedDepositAccountBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/deposit/FixedDepositAccountBusinessEvent.java
index 3b69bbfe4..1a4e3566f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/FixedDepositAccountBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/deposit/FixedDepositAccountBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.deposit;
+package org.apache.fineract.infrastructure.event.business.domain.deposit;
 
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 import org.apache.fineract.portfolio.savings.domain.FixedDepositAccount;
 
 public abstract class FixedDepositAccountBusinessEvent extends AbstractBusinessEvent<FixedDepositAccount> {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/FixedDepositAccountCreateBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/deposit/FixedDepositAccountCreateBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/FixedDepositAccountCreateBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/deposit/FixedDepositAccountCreateBusinessEvent.java
index c61c53aa8..fca0f8b7f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/FixedDepositAccountCreateBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/deposit/FixedDepositAccountCreateBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.deposit;
+package org.apache.fineract.infrastructure.event.business.domain.deposit;
 
 import org.apache.fineract.portfolio.savings.domain.FixedDepositAccount;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/RecurringDepositAccountBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/deposit/RecurringDepositAccountBusinessEvent.java
similarity index 87%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/RecurringDepositAccountBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/deposit/RecurringDepositAccountBusinessEvent.java
index 8dd360843..4e1d8241f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/RecurringDepositAccountBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/deposit/RecurringDepositAccountBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.deposit;
+package org.apache.fineract.infrastructure.event.business.domain.deposit;
 
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 import org.apache.fineract.portfolio.savings.domain.RecurringDepositAccount;
 
 public abstract class RecurringDepositAccountBusinessEvent extends AbstractBusinessEvent<RecurringDepositAccount> {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/RecurringDepositAccountCreateBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/deposit/RecurringDepositAccountCreateBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/RecurringDepositAccountCreateBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/deposit/RecurringDepositAccountCreateBusinessEvent.java
index 498de1c2c..f3a1a9a12 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/deposit/RecurringDepositAccountCreateBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/deposit/RecurringDepositAccountCreateBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.deposit;
+package org.apache.fineract.infrastructure.event.business.domain.deposit;
 
 import org.apache.fineract.portfolio.savings.domain.RecurringDepositAccount;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/group/CentersCreateBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/group/CentersCreateBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/group/CentersCreateBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/group/CentersCreateBusinessEvent.java
index d027a2a07..4e3bd7c18 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/group/CentersCreateBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/group/CentersCreateBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.group;
+package org.apache.fineract.infrastructure.event.business.domain.group;
 
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/group/GroupsBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/group/GroupsBusinessEvent.java
similarity index 87%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/group/GroupsBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/group/GroupsBusinessEvent.java
index c1de3ea88..88f71e229 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/group/GroupsBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/group/GroupsBusinessEvent.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.group;
+package org.apache.fineract.infrastructure.event.business.domain.group;
 
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 
 public abstract class GroupsBusinessEvent extends AbstractBusinessEvent<CommandProcessingResult> {
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/group/GroupsCreateBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/group/GroupsCreateBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/group/GroupsCreateBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/group/GroupsCreateBusinessEvent.java
index 5597f9394..06b7ea5a5 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/group/GroupsCreateBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/group/GroupsCreateBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.group;
+package org.apache.fineract.infrastructure.event.business.domain.group;
 
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanAcceptTransferBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanAcceptTransferBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanAcceptTransferBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanAcceptTransferBusinessEvent.java
index 418b26aab..047cd2a00 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanAcceptTransferBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanAcceptTransferBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanAdjustTransactionBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanAdjustTransactionBusinessEvent.java
similarity index 90%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanAdjustTransactionBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanAdjustTransactionBusinessEvent.java
index 485232734..e33638f76 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanAdjustTransactionBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanAdjustTransactionBusinessEvent.java
@@ -16,12 +16,12 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
 public class LoanAdjustTransactionBusinessEvent extends AbstractBusinessEvent<LoanAdjustTransactionBusinessEvent.Data> {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanApplyOverdueChargeBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanApplyOverdueChargeBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanApplyOverdueChargeBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanApplyOverdueChargeBusinessEvent.java
index f28867f01..535dc3fdd 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanApplyOverdueChargeBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanApplyOverdueChargeBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanApprovedBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanApprovedBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanApprovedBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanApprovedBusinessEvent.java
index 525027fa7..506e23841 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanApprovedBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanApprovedBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanBusinessEvent.java
similarity index 86%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanBusinessEvent.java
index ec3d52dbf..dec794bca 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
 public abstract class LoanBusinessEvent extends AbstractBusinessEvent<Loan> {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanCloseAsRescheduleBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanCloseAsRescheduleBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanCloseAsRescheduleBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanCloseAsRescheduleBusinessEvent.java
index 6d7610e22..3168a55c5 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanCloseAsRescheduleBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanCloseAsRescheduleBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanCloseBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanCloseBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanCloseBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanCloseBusinessEvent.java
index beae15f1f..b4ce3def0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanCloseBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanCloseBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanCreatedBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanCreatedBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanCreatedBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanCreatedBusinessEvent.java
index 721972422..109c77172 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanCreatedBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanCreatedBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanDisbursalBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanDisbursalBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanDisbursalBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanDisbursalBusinessEvent.java
index 6a82a01c5..7bed832b8 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanDisbursalBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanDisbursalBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanInitiateTransferBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanInitiateTransferBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanInitiateTransferBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanInitiateTransferBusinessEvent.java
index ab1b39ec2..d77e233ba 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanInitiateTransferBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanInitiateTransferBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanInterestRecalculationBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanInterestRecalculationBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanInterestRecalculationBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanInterestRecalculationBusinessEvent.java
index ed9954dbc..86df37390 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanInterestRecalculationBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanInterestRecalculationBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanReassignOfficerBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanReassignOfficerBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanReassignOfficerBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanReassignOfficerBusinessEvent.java
index 9511c3f7c..84778dae8 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanReassignOfficerBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanReassignOfficerBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanRejectTransferBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanRejectTransferBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanRejectTransferBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanRejectTransferBusinessEvent.java
index f6cc1a9ca..c2f86e793 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanRejectTransferBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanRejectTransferBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanRejectedBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanRejectedBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanRejectedBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanRejectedBusinessEvent.java
index 9e9863436..a24188c96 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanRejectedBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanRejectedBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanRemoveOfficerBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanRemoveOfficerBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanRemoveOfficerBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanRemoveOfficerBusinessEvent.java
index e121b9db3..8ce952f93 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanRemoveOfficerBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanRemoveOfficerBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanUndoApprovalBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanUndoApprovalBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanUndoApprovalBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanUndoApprovalBusinessEvent.java
index 2529ab5ef..6d43f842b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanUndoApprovalBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanUndoApprovalBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanUndoDisbursalBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanUndoDisbursalBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanUndoDisbursalBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanUndoDisbursalBusinessEvent.java
index 4dfee5ffb..797ab50a4 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanUndoDisbursalBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanUndoDisbursalBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanUndoLastDisbursalBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanUndoLastDisbursalBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanUndoLastDisbursalBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanUndoLastDisbursalBusinessEvent.java
index c7f573d80..706ad3b4f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanUndoLastDisbursalBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanUndoLastDisbursalBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanWithdrawTransferBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanWithdrawTransferBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanWithdrawTransferBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanWithdrawTransferBusinessEvent.java
index 0ed2b11d1..431d6afef 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/LoanWithdrawTransferBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/LoanWithdrawTransferBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan;
+package org.apache.fineract.infrastructure.event.business.domain.loan;
 
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanAddChargeBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanAddChargeBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanAddChargeBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanAddChargeBusinessEvent.java
index 08dca068f..c7be716ff 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanAddChargeBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanAddChargeBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.charge;
+package org.apache.fineract.infrastructure.event.business.domain.loan.charge;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanChargeBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanChargeBusinessEvent.java
similarity index 86%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanChargeBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanChargeBusinessEvent.java
index 6e190e144..eaf8331d0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanChargeBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanChargeBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.charge;
+package org.apache.fineract.infrastructure.event.business.domain.loan.charge;
 
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
 
 public abstract class LoanChargeBusinessEvent extends AbstractBusinessEvent<LoanCharge> {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanDeleteChargeBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanDeleteChargeBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanDeleteChargeBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanDeleteChargeBusinessEvent.java
index 098df9d6f..ea2441c8d 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanDeleteChargeBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanDeleteChargeBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.charge;
+package org.apache.fineract.infrastructure.event.business.domain.loan.charge;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanUpdateChargeBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanUpdateChargeBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanUpdateChargeBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanUpdateChargeBusinessEvent.java
index 1626ccaff..4284398dc 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanUpdateChargeBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanUpdateChargeBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.charge;
+package org.apache.fineract.infrastructure.event.business.domain.loan.charge;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanWaiveChargeBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanWaiveChargeBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanWaiveChargeBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanWaiveChargeBusinessEvent.java
index 2d33f2b47..9c383a959 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanWaiveChargeBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanWaiveChargeBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.charge;
+package org.apache.fineract.infrastructure.event.business.domain.loan.charge;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanWaiveChargeUndoBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanWaiveChargeUndoBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanWaiveChargeUndoBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanWaiveChargeUndoBusinessEvent.java
index c358aa94a..d5f18d3a8 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/charge/LoanWaiveChargeUndoBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/charge/LoanWaiveChargeUndoBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.charge;
+package org.apache.fineract.infrastructure.event.business.domain.loan.charge;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/product/LoanProductBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/product/LoanProductBusinessEvent.java
similarity index 86%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/product/LoanProductBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/product/LoanProductBusinessEvent.java
index 3bd3dce0c..53324f059 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/product/LoanProductBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/product/LoanProductBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.product;
+package org.apache.fineract.infrastructure.event.business.domain.loan.product;
 
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
 
 public abstract class LoanProductBusinessEvent extends AbstractBusinessEvent<LoanProduct> {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/product/LoanProductCreateBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/product/LoanProductCreateBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/product/LoanProductCreateBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/product/LoanProductCreateBusinessEvent.java
index 63325f295..6546f8dd2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/product/LoanProductCreateBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/product/LoanProductCreateBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.product;
+package org.apache.fineract.infrastructure.event.business.domain.loan.product;
 
 import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanChargePaymentPostBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanChargePaymentPostBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanChargePaymentPostBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanChargePaymentPostBusinessEvent.java
index 91de41650..0ae55cc2f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanChargePaymentPostBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanChargePaymentPostBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanChargePaymentPreBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanChargePaymentPreBusinessEvent.java
similarity index 86%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanChargePaymentPreBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanChargePaymentPreBusinessEvent.java
index 685be9242..f84a336cc 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanChargePaymentPreBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanChargePaymentPreBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
 public class LoanChargePaymentPreBusinessEvent extends LoanBusinessEvent {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanChargeRefundBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanChargeRefundBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanChargeRefundBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanChargeRefundBusinessEvent.java
index eccd23f6b..8d5cd3f24 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanChargeRefundBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanChargeRefundBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanCreditBalanceRefundPostBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanCreditBalanceRefundPostBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanCreditBalanceRefundPostBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanCreditBalanceRefundPostBusinessEvent.java
index 224b665a0..592b8d1f2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanCreditBalanceRefundPostBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanCreditBalanceRefundPostBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanCreditBalanceRefundPreBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanCreditBalanceRefundPreBusinessEvent.java
similarity index 87%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanCreditBalanceRefundPreBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanCreditBalanceRefundPreBusinessEvent.java
index 9c8150b92..da2edd3b6 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanCreditBalanceRefundPreBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanCreditBalanceRefundPreBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
 public class LoanCreditBalanceRefundPreBusinessEvent extends LoanBusinessEvent {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanForeClosurePostBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanForeClosurePostBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanForeClosurePostBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanForeClosurePostBusinessEvent.java
index 67ba6b222..02d2a2b4e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanForeClosurePostBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanForeClosurePostBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanForeClosurePreBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanForeClosurePreBusinessEvent.java
similarity index 86%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanForeClosurePreBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanForeClosurePreBusinessEvent.java
index 36bab83bd..85278d211 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanForeClosurePreBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanForeClosurePreBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
 public class LoanForeClosurePreBusinessEvent extends LoanBusinessEvent {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanRefundPostBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanRefundPostBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanRefundPostBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanRefundPostBusinessEvent.java
index ee8a10132..6b3d06d55 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanRefundPostBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanRefundPostBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanRefundPreBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanRefundPreBusinessEvent.java
similarity index 86%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanRefundPreBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanRefundPreBusinessEvent.java
index 8bad04202..b6280968b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanRefundPreBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanRefundPreBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
 public class LoanRefundPreBusinessEvent extends LoanBusinessEvent {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionBusinessEvent.java
similarity index 86%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionBusinessEvent.java
index 2f818a725..cb7929735 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
 public abstract class LoanTransactionBusinessEvent extends AbstractBusinessEvent<LoanTransaction> {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionGoodwillCreditPostBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionGoodwillCreditPostBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionGoodwillCreditPostBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionGoodwillCreditPostBusinessEvent.java
index 2db1360b7..f3797c2f9 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionGoodwillCreditPostBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionGoodwillCreditPostBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionGoodwillCreditPreBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionGoodwillCreditPreBusinessEvent.java
similarity index 87%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionGoodwillCreditPreBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionGoodwillCreditPreBusinessEvent.java
index 28b73ca81..238f90cd2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionGoodwillCreditPreBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionGoodwillCreditPreBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
 public class LoanTransactionGoodwillCreditPreBusinessEvent extends LoanBusinessEvent {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMakeRepaymentPostBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionMakeRepaymentPostBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMakeRepaymentPostBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionMakeRepaymentPostBusinessEvent.java
index 40bf3bb91..688859c5c 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMakeRepaymentPostBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionMakeRepaymentPostBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMakeRepaymentPreBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionMakeRepaymentPreBusinessEvent.java
similarity index 87%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMakeRepaymentPreBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionMakeRepaymentPreBusinessEvent.java
index 3e19e7bff..cd96632a5 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMakeRepaymentPreBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionMakeRepaymentPreBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
 public class LoanTransactionMakeRepaymentPreBusinessEvent extends LoanBusinessEvent {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPostBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPostBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPostBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPostBusinessEvent.java
index a1fd4d281..eca008a70 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPostBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPostBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPreBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPreBusinessEvent.java
similarity index 87%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPreBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPreBusinessEvent.java
index 5e7f0793d..7135e3035 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPreBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionMerchantIssuedRefundPreBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
 public class LoanTransactionMerchantIssuedRefundPreBusinessEvent extends LoanBusinessEvent {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionPayoutRefundPostBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionPayoutRefundPostBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionPayoutRefundPostBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionPayoutRefundPostBusinessEvent.java
index 4c521f5fc..69733198e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionPayoutRefundPostBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionPayoutRefundPostBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionPayoutRefundPreBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionPayoutRefundPreBusinessEvent.java
similarity index 87%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionPayoutRefundPreBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionPayoutRefundPreBusinessEvent.java
index 31ddc69b1..e6791e364 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionPayoutRefundPreBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionPayoutRefundPreBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
 public class LoanTransactionPayoutRefundPreBusinessEvent extends LoanBusinessEvent {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionRecoveryPaymentPostBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionRecoveryPaymentPostBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionRecoveryPaymentPostBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionRecoveryPaymentPostBusinessEvent.java
index 47e18f252..89e97aca6 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionRecoveryPaymentPostBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionRecoveryPaymentPostBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionRecoveryPaymentPreBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionRecoveryPaymentPreBusinessEvent.java
similarity index 87%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionRecoveryPaymentPreBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionRecoveryPaymentPreBusinessEvent.java
index e6a890769..9fa8424ae 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanTransactionRecoveryPaymentPreBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanTransactionRecoveryPaymentPreBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
 public class LoanTransactionRecoveryPaymentPreBusinessEvent extends LoanBusinessEvent {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanUndoWrittenOffBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanUndoWrittenOffBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanUndoWrittenOffBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanUndoWrittenOffBusinessEvent.java
index 834acd949..7dfbba5be 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanUndoWrittenOffBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanUndoWrittenOffBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanWaiveInterestBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanWaiveInterestBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanWaiveInterestBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanWaiveInterestBusinessEvent.java
index b7ee4708b..4d5e1c3c8 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanWaiveInterestBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanWaiveInterestBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanWrittenOffPostBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanWrittenOffPostBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanWrittenOffPostBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanWrittenOffPostBusinessEvent.java
index 4ccb4d790..ffa9468ec 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanWrittenOffPostBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanWrittenOffPostBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanWrittenOffPreBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanWrittenOffPreBusinessEvent.java
similarity index 86%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanWrittenOffPreBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanWrittenOffPreBusinessEvent.java
index 9b7c7cd91..2a7b2ded6 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/loan/transaction/LoanWrittenOffPreBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/loan/transaction/LoanWrittenOffPreBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.loan.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.loan.transaction;
 
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 
 public class LoanWrittenOffPreBusinessEvent extends LoanBusinessEvent {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsAccountBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsAccountBusinessEvent.java
similarity index 86%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsAccountBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsAccountBusinessEvent.java
index 1183af386..dd3dc1691 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsAccountBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsAccountBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.savings;
+package org.apache.fineract.infrastructure.event.business.domain.savings;
 
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 
 public abstract class SavingsAccountBusinessEvent extends AbstractBusinessEvent<SavingsAccount> {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsActivateBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsActivateBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsActivateBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsActivateBusinessEvent.java
index 2fda3fe9a..9e0f37c31 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsActivateBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsActivateBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.savings;
+package org.apache.fineract.infrastructure.event.business.domain.savings;
 
 import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsApproveBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsApproveBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsApproveBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsApproveBusinessEvent.java
index 918544a56..a1c09c5ef 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsApproveBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsApproveBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.savings;
+package org.apache.fineract.infrastructure.event.business.domain.savings;
 
 import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsCloseBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsCloseBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsCloseBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsCloseBusinessEvent.java
index dc2f87c1a..d9c550375 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsCloseBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsCloseBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.savings;
+package org.apache.fineract.infrastructure.event.business.domain.savings;
 
 import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsCreateBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsCreateBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsCreateBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsCreateBusinessEvent.java
index b9bb20106..53f261b1c 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsCreateBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsCreateBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.savings;
+package org.apache.fineract.infrastructure.event.business.domain.savings;
 
 import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsPostInterestBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsPostInterestBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsPostInterestBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsPostInterestBusinessEvent.java
index 65d4d184c..24d3cc08a 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsPostInterestBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsPostInterestBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.savings;
+package org.apache.fineract.infrastructure.event.business.domain.savings;
 
 import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsRejectBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsRejectBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsRejectBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsRejectBusinessEvent.java
index 0cb8af8bf..9756fedf0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/SavingsRejectBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/SavingsRejectBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.savings;
+package org.apache.fineract.infrastructure.event.business.domain.savings;
 
 import org.apache.fineract.portfolio.savings.domain.SavingsAccount;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/transaction/SavingsAccountTransactionBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/transaction/SavingsAccountTransactionBusinessEvent.java
similarity index 86%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/transaction/SavingsAccountTransactionBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/transaction/SavingsAccountTransactionBusinessEvent.java
index 10425222f..d2a4e2cba 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/transaction/SavingsAccountTransactionBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/transaction/SavingsAccountTransactionBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.savings.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.savings.transaction;
 
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
 
 public abstract class SavingsAccountTransactionBusinessEvent extends AbstractBusinessEvent<SavingsAccountTransaction> {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/transaction/SavingsDepositBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/transaction/SavingsDepositBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/transaction/SavingsDepositBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/transaction/SavingsDepositBusinessEvent.java
index 59f737ba3..cdd73913e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/transaction/SavingsDepositBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/transaction/SavingsDepositBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.savings.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.savings.transaction;
 
 import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/transaction/SavingsWithdrawalBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/transaction/SavingsWithdrawalBusinessEvent.java
similarity index 93%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/transaction/SavingsWithdrawalBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/transaction/SavingsWithdrawalBusinessEvent.java
index 3f35a5307..860cd9b01 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/savings/transaction/SavingsWithdrawalBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/savings/transaction/SavingsWithdrawalBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.savings.transaction;
+package org.apache.fineract.infrastructure.event.business.domain.savings.transaction;
 
 import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareAccountApproveBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/share/ShareAccountApproveBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareAccountApproveBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/share/ShareAccountApproveBusinessEvent.java
index bf2587555..517afce2f 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareAccountApproveBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/share/ShareAccountApproveBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.share;
+package org.apache.fineract.infrastructure.event.business.domain.share;
 
 import org.apache.fineract.portfolio.shareaccounts.domain.ShareAccount;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareAccountBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/share/ShareAccountBusinessEvent.java
similarity index 86%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareAccountBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/share/ShareAccountBusinessEvent.java
index b3dd63658..3204df993 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareAccountBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/share/ShareAccountBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.share;
+package org.apache.fineract.infrastructure.event.business.domain.share;
 
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 import org.apache.fineract.portfolio.shareaccounts.domain.ShareAccount;
 
 public abstract class ShareAccountBusinessEvent extends AbstractBusinessEvent<ShareAccount> {
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareAccountCreateBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/share/ShareAccountCreateBusinessEvent.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareAccountCreateBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/share/ShareAccountCreateBusinessEvent.java
index 03b1627b5..ea8b596a4 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareAccountCreateBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/share/ShareAccountCreateBusinessEvent.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.share;
+package org.apache.fineract.infrastructure.event.business.domain.share;
 
 import org.apache.fineract.portfolio.shareaccounts.domain.ShareAccount;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareProductDividentsCreateBusinessEvent.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/share/ShareProductDividentsCreateBusinessEvent.java
similarity index 87%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareProductDividentsCreateBusinessEvent.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/share/ShareProductDividentsCreateBusinessEvent.java
index 263a0b451..f363dda40 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/domain/share/ShareProductDividentsCreateBusinessEvent.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/domain/share/ShareProductDividentsCreateBusinessEvent.java
@@ -16,9 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.domain.share;
+package org.apache.fineract.infrastructure.event.business.domain.share;
 
-import org.apache.fineract.portfolio.businessevent.domain.AbstractBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.AbstractBusinessEvent;
 
 public class ShareProductDividentsCreateBusinessEvent extends AbstractBusinessEvent<Long> {
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierService.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/service/BusinessEventNotifierService.java
similarity index 88%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierService.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/service/BusinessEventNotifierService.java
index f4b00f1c1..7c57c9eb7 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierService.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/service/BusinessEventNotifierService.java
@@ -16,10 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.service;
+package org.apache.fineract.infrastructure.event.business.service;
 
-import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.BusinessEventListener;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
 
 /**
  * Implemented class is responsible for notifying the business event to registered listeners.
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/service/BusinessEventNotifierServiceImpl.java
similarity index 94%
rename from fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierServiceImpl.java
rename to fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/service/BusinessEventNotifierServiceImpl.java
index 7dbd8b642..fc8dbf4a0 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/businessevent/service/BusinessEventNotifierServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/business/service/BusinessEventNotifierServiceImpl.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.fineract.portfolio.businessevent.service;
+package org.apache.fineract.infrastructure.event.business.service;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -25,9 +25,9 @@ import java.util.Map;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.fineract.infrastructure.core.config.FineractProperties;
+import org.apache.fineract.infrastructure.event.business.BusinessEventListener;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.ExternalEventService;
-import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.stereotype.Service;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/DelayedExternalEventService.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/DelayedExternalEventService.java
index f043a9f84..fd82f36ab 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/DelayedExternalEventService.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/DelayedExternalEventService.java
@@ -21,8 +21,8 @@ package org.apache.fineract.infrastructure.event.external.service;
 import java.util.ArrayList;
 import java.util.List;
 import lombok.RequiredArgsConstructor;
-import org.apache.fineract.portfolio.businessevent.domain.BulkBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.BulkBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
 import org.springframework.stereotype.Service;
 
 @Service
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/ExternalEventService.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/ExternalEventService.java
index a2bbb6835..216836f6e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/ExternalEventService.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/ExternalEventService.java
@@ -20,11 +20,11 @@ package org.apache.fineract.infrastructure.event.external.service;
 
 import java.io.IOException;
 import lombok.RequiredArgsConstructor;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
 import org.apache.fineract.infrastructure.event.external.repository.ExternalEventRepository;
 import org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent;
 import org.apache.fineract.infrastructure.event.external.service.idempotency.ExternalEventIdempotencyKeyGenerator;
 import org.apache.fineract.infrastructure.event.external.service.serialization.BusinessEventSerializerFactory;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/idempotency/DefaultExternalEventIdempotencyKeyGenerator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/idempotency/DefaultExternalEventIdempotencyKeyGenerator.java
index 875b6c273..030db8484 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/idempotency/DefaultExternalEventIdempotencyKeyGenerator.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/idempotency/DefaultExternalEventIdempotencyKeyGenerator.java
@@ -19,7 +19,7 @@
 package org.apache.fineract.infrastructure.event.external.service.idempotency;
 
 import java.util.UUID;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
 import org.springframework.stereotype.Component;
 
 @Component
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/idempotency/ExternalEventIdempotencyKeyGenerator.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/idempotency/ExternalEventIdempotencyKeyGenerator.java
index 63646530e..3de0ba990 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/idempotency/ExternalEventIdempotencyKeyGenerator.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/idempotency/ExternalEventIdempotencyKeyGenerator.java
@@ -18,7 +18,7 @@
  */
 package org.apache.fineract.infrastructure.event.external.service.idempotency;
 
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
 
 public interface ExternalEventIdempotencyKeyGenerator {
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/BusinessEventSerializerFactory.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/BusinessEventSerializerFactory.java
index 7046a56bd..30fabca15 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/BusinessEventSerializerFactory.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/BusinessEventSerializerFactory.java
@@ -20,8 +20,8 @@ package org.apache.fineract.infrastructure.event.external.service.serialization;
 
 import java.util.List;
 import lombok.RequiredArgsConstructor;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
 import org.springframework.stereotype.Component;
 
 @Component
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/BusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/BusinessEventSerializer.java
index fa50fa0bf..ceb59dd06 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/BusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/BusinessEventSerializer.java
@@ -19,7 +19,7 @@
 package org.apache.fineract.infrastructure.event.external.service.serialization.serializer;
 
 import java.io.IOException;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
 
 public interface BusinessEventSerializer {
 
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/client/ClientBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/client/ClientBusinessEventSerializer.java
index 3446818ba..aebd3b7a3 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/client/ClientBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/client/ClientBusinessEventSerializer.java
@@ -22,11 +22,11 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.client.v1.ClientDataV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.client.ClientBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.client.ClientDataMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.client.ClientBusinessEvent;
 import org.apache.fineract.portfolio.client.data.ClientData;
 import org.apache.fineract.portfolio.client.service.ClientReadPlatformService;
 import org.springframework.stereotype.Component;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/fixeddeposit/FixedDepositAccountBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/fixeddeposit/FixedDepositAccountBusinessEventSerializer.java
index ca07e7009..970990a0b 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/fixeddeposit/FixedDepositAccountBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/fixeddeposit/FixedDepositAccountBusinessEventSerializer.java
@@ -22,11 +22,11 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.fixeddeposit.v1.FixedDepositAccountDataV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.deposit.FixedDepositAccountBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.fixeddeposit.FixedDepositAccountDataMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.deposit.FixedDepositAccountBusinessEvent;
 import org.apache.fineract.portfolio.savings.DepositAccountType;
 import org.apache.fineract.portfolio.savings.data.FixedDepositAccountData;
 import org.apache.fineract.portfolio.savings.service.DepositAccountReadPlatformService;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/group/GroupsBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/group/GroupsBusinessEventSerializer.java
index 485fff5c5..267443cb2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/group/GroupsBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/group/GroupsBusinessEventSerializer.java
@@ -22,11 +22,11 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.generic.v1.CommandProcessingResultV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.group.GroupsBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.generic.CommandProcessingResultMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.group.GroupsBusinessEvent;
 import org.springframework.stereotype.Component;
 
 @Component
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanAdjustTransactionBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanAdjustTransactionBusinessEventSerializer.java
index 179b8c555..62af64ff7 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanAdjustTransactionBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanAdjustTransactionBusinessEventSerializer.java
@@ -23,11 +23,11 @@ import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.loan.v1.LoanTransactionAdjustmentDataV1;
 import org.apache.fineract.avro.loan.v1.LoanTransactionDataV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanAdjustTransactionBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan.LoanTransactionDataMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanAdjustTransactionBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.data.LoanTransactionData;
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 import org.apache.fineract.portfolio.loanaccount.service.LoanReadPlatformService;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanBusinessEventSerializer.java
index 383be874d..9077e40d2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanBusinessEventSerializer.java
@@ -22,11 +22,11 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.loan.v1.LoanAccountDataV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan.LoanAccountDataMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.data.LoanAccountData;
 import org.apache.fineract.portfolio.loanaccount.service.LoanReadPlatformService;
 import org.springframework.stereotype.Component;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanChargeBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanChargeBusinessEventSerializer.java
index 4b1d6d116..ce8d52bb2 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanChargeBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanChargeBusinessEventSerializer.java
@@ -22,11 +22,11 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.loan.v1.LoanChargeDataV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.charge.LoanChargeBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan.LoanChargeDataMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.charge.LoanChargeBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.data.LoanChargeData;
 import org.apache.fineract.portfolio.loanaccount.service.LoanChargeReadPlatformService;
 import org.springframework.stereotype.Component;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanProductBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanProductBusinessEventSerializer.java
index ff5e70284..12d73d604 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanProductBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanProductBusinessEventSerializer.java
@@ -22,11 +22,11 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.loan.v1.LoanProductDataV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.product.LoanProductBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan.LoanProductDataMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.product.LoanProductBusinessEvent;
 import org.apache.fineract.portfolio.loanproduct.data.LoanProductData;
 import org.apache.fineract.portfolio.loanproduct.service.LoanProductReadPlatformService;
 import org.springframework.stereotype.Component;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanTransactionBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanTransactionBusinessEventSerializer.java
index c41d591e5..ca932e978 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanTransactionBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/loan/LoanTransactionBusinessEventSerializer.java
@@ -22,11 +22,11 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.loan.v1.LoanTransactionDataV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.loan.LoanTransactionDataMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionBusinessEvent;
 import org.apache.fineract.portfolio.loanaccount.data.LoanTransactionData;
 import org.apache.fineract.portfolio.loanaccount.service.LoanReadPlatformService;
 import org.springframework.stereotype.Component;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/recurringdeposit/RecurringDepositAccountBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/recurringdeposit/RecurringDepositAccountBusinessEventSerializer.java
index 0517c9ed7..dd13a1aab 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/recurringdeposit/RecurringDepositAccountBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/recurringdeposit/RecurringDepositAccountBusinessEventSerializer.java
@@ -22,11 +22,11 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.recurringdeposit.v1.RecurringDepositAccountDataV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.deposit.RecurringDepositAccountBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.recurringdeposit.RecurringDepositAccountDataMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.deposit.RecurringDepositAccountBusinessEvent;
 import org.apache.fineract.portfolio.savings.DepositAccountType;
 import org.apache.fineract.portfolio.savings.data.RecurringDepositAccountData;
 import org.apache.fineract.portfolio.savings.service.DepositAccountReadPlatformService;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/savings/SavingsAccountBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/savings/SavingsAccountBusinessEventSerializer.java
index c211a9c29..6952209c7 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/savings/SavingsAccountBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/savings/SavingsAccountBusinessEventSerializer.java
@@ -22,11 +22,11 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.savings.v1.SavingsAccountDataV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsAccountBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.savings.SavingsAccountDataMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsAccountBusinessEvent;
 import org.apache.fineract.portfolio.savings.data.SavingsAccountData;
 import org.apache.fineract.portfolio.savings.service.SavingsAccountReadPlatformService;
 import org.springframework.stereotype.Component;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/savings/SavingsAccountTransactionBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/savings/SavingsAccountTransactionBusinessEventSerializer.java
index 487c3d6dd..31537a688 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/savings/SavingsAccountTransactionBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/savings/SavingsAccountTransactionBusinessEventSerializer.java
@@ -22,11 +22,11 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.savings.v1.SavingsAccountTransactionDataV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.transaction.SavingsAccountTransactionBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.savings.SavingsAccountTransactionDataMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.transaction.SavingsAccountTransactionBusinessEvent;
 import org.apache.fineract.portfolio.savings.data.SavingsAccountTransactionData;
 import org.apache.fineract.portfolio.savings.domain.SavingsAccountTransaction;
 import org.apache.fineract.portfolio.savings.service.SavingsAccountReadPlatformService;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/share/ShareAccountBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/share/ShareAccountBusinessEventSerializer.java
index f69ed9f59..4632c66a7 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/share/ShareAccountBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/share/ShareAccountBusinessEventSerializer.java
@@ -22,11 +22,11 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.share.v1.ShareAccountDataV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.share.ShareAccountBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.share.ShareAccountDataMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.share.ShareAccountBusinessEvent;
 import org.apache.fineract.portfolio.shareaccounts.data.ShareAccountData;
 import org.apache.fineract.portfolio.shareaccounts.service.ShareAccountReadPlatformService;
 import org.springframework.stereotype.Component;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/share/ShareProductDividentsCreateBusinessEventSerializer.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/share/ShareProductDividentsCreateBusinessEventSerializer.java
index 50b5abf2e..d847de340 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/share/ShareProductDividentsCreateBusinessEventSerializer.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/event/external/service/serialization/serializer/share/ShareProductDividentsCreateBusinessEventSerializer.java
@@ -22,11 +22,11 @@ import java.io.IOException;
 import java.nio.ByteBuffer;
 import lombok.RequiredArgsConstructor;
 import org.apache.fineract.avro.share.v1.ShareProductDataV1;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.share.ShareProductDividentsCreateBusinessEvent;
 import org.apache.fineract.infrastructure.event.external.service.serialization.mapper.share.ShareProductDataMapper;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
 import org.apache.fineract.infrastructure.event.external.service.support.ByteBufferConverter;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.share.ShareProductDividentsCreateBusinessEvent;
 import org.apache.fineract.portfolio.products.service.ShareProductReadPlatformService;
 import org.apache.fineract.portfolio.shareproducts.data.ShareProductData;
 import org.springframework.stereotype.Component;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/notification/service/NotificationDomainServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/notification/service/NotificationDomainServiceImpl.java
index 94ee2ac2f..e68eaeb30 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/notification/service/NotificationDomainServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/notification/service/NotificationDomainServiceImpl.java
@@ -27,30 +27,30 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
+import org.apache.fineract.infrastructure.event.business.BusinessEventListener;
+import org.apache.fineract.infrastructure.event.business.domain.client.ClientCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.deposit.FixedDepositAccountCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.deposit.RecurringDepositAccountCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.group.CentersCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.group.GroupsCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanApprovedBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanCloseAsRescheduleBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanCloseBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanCreatedBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.product.LoanProductCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionMakeRepaymentPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsApproveBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsCloseBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsPostInterestBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.transaction.SavingsDepositBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.share.ShareAccountApproveBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.share.ShareAccountCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.share.ShareProductDividentsCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.notification.data.NotificationData;
 import org.apache.fineract.notification.eventandlistener.NotificationEventPublisher;
-import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
-import org.apache.fineract.portfolio.businessevent.domain.client.ClientCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.deposit.FixedDepositAccountCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.deposit.RecurringDepositAccountCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.group.CentersCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.group.GroupsCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanApprovedBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanCloseAsRescheduleBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanCloseBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanCreatedBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.product.LoanProductCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionMakeRepaymentPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsApproveBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsCloseBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsPostInterestBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.transaction.SavingsDepositBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.share.ShareAccountApproveBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.share.ShareAccountCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.share.ShareProductDividentsCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.client.domain.Client;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 import org.apache.fineract.portfolio.loanproduct.domain.LoanProduct;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
index 65f8cb33f..124ffd6e7 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/client/service/ClientWritePlatformServiceJpaRepositoryImpl.java
@@ -47,16 +47,16 @@ import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
 import org.apache.fineract.infrastructure.dataqueries.data.EntityTables;
 import org.apache.fineract.infrastructure.dataqueries.data.StatusEnum;
 import org.apache.fineract.infrastructure.dataqueries.service.EntityDatatableChecksWritePlatformService;
+import org.apache.fineract.infrastructure.event.business.domain.client.ClientActivateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.client.ClientCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.client.ClientRejectBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.organisation.office.domain.Office;
 import org.apache.fineract.organisation.office.domain.OfficeRepositoryWrapper;
 import org.apache.fineract.organisation.staff.domain.Staff;
 import org.apache.fineract.organisation.staff.domain.StaffRepositoryWrapper;
 import org.apache.fineract.portfolio.address.service.AddressWritePlatformService;
-import org.apache.fineract.portfolio.businessevent.domain.client.ClientActivateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.client.ClientCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.client.ClientRejectBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.client.api.ClientApiConstants;
 import org.apache.fineract.portfolio.client.data.ClientDataValidator;
 import org.apache.fineract.portfolio.client.domain.AccountNumberGenerator;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupingTypesWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupingTypesWritePlatformServiceJpaRepositoryImpl.java
index 2cd0ef5ff..e86fa9294 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupingTypesWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/group/service/GroupingTypesWritePlatformServiceJpaRepositoryImpl.java
@@ -48,15 +48,15 @@ import org.apache.fineract.infrastructure.core.service.DateUtils;
 import org.apache.fineract.infrastructure.dataqueries.data.EntityTables;
 import org.apache.fineract.infrastructure.dataqueries.data.StatusEnum;
 import org.apache.fineract.infrastructure.dataqueries.service.EntityDatatableChecksWritePlatformService;
+import org.apache.fineract.infrastructure.event.business.domain.group.CentersCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.group.GroupsCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.organisation.office.domain.Office;
 import org.apache.fineract.organisation.office.domain.OfficeRepositoryWrapper;
 import org.apache.fineract.organisation.office.exception.InvalidOfficeException;
 import org.apache.fineract.organisation.staff.domain.Staff;
 import org.apache.fineract.organisation.staff.domain.StaffRepositoryWrapper;
-import org.apache.fineract.portfolio.businessevent.domain.group.CentersCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.group.GroupsCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.calendar.domain.Calendar;
 import org.apache.fineract.portfolio.calendar.domain.CalendarEntityType;
 import org.apache.fineract.portfolio.calendar.domain.CalendarInstance;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanAccountDomainServiceJpa.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanAccountDomainServiceJpa.java
index 01ce781df..3d50509b9 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanAccountDomainServiceJpa.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/domain/LoanAccountDomainServiceJpa.java
@@ -39,6 +39,27 @@ import org.apache.fineract.infrastructure.core.exception.GeneralPlatformDomainRu
 import org.apache.fineract.infrastructure.core.exception.MultiException;
 import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
 import org.apache.fineract.infrastructure.core.service.DateUtils;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanChargePaymentPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanChargePaymentPreBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanCreditBalanceRefundPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanCreditBalanceRefundPreBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanForeClosurePostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanForeClosurePreBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanRefundPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanRefundPreBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionGoodwillCreditPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionGoodwillCreditPreBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionMakeRepaymentPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionMakeRepaymentPreBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionMerchantIssuedRefundPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionMerchantIssuedRefundPreBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionPayoutRefundPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionPayoutRefundPreBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionRecoveryPaymentPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionRecoveryPaymentPreBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.organisation.holiday.domain.Holiday;
 import org.apache.fineract.organisation.holiday.domain.HolidayRepository;
@@ -56,27 +77,6 @@ import org.apache.fineract.portfolio.account.domain.AccountTransferTransaction;
 import org.apache.fineract.portfolio.account.domain.StandingInstructionRepository;
 import org.apache.fineract.portfolio.account.domain.StandingInstructionStatus;
 import org.apache.fineract.portfolio.accountdetails.domain.AccountType;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanChargePaymentPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanChargePaymentPreBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanCreditBalanceRefundPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanCreditBalanceRefundPreBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanForeClosurePostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanForeClosurePreBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanRefundPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanRefundPreBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionGoodwillCreditPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionGoodwillCreditPreBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionMakeRepaymentPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionMakeRepaymentPreBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionMerchantIssuedRefundPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionMerchantIssuedRefundPreBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionPayoutRefundPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionPayoutRefundPreBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionRecoveryPaymentPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionRecoveryPaymentPreBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.client.domain.Client;
 import org.apache.fineract.portfolio.client.exception.ClientNotActiveException;
 import org.apache.fineract.portfolio.common.domain.PeriodFrequencyType;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorDomainServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorDomainServiceImpl.java
index 0a651af89..bfdd188dc 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorDomainServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/guarantor/service/GuarantorDomainServiceImpl.java
@@ -33,21 +33,21 @@ import org.apache.fineract.infrastructure.core.data.ApiParameterError;
 import org.apache.fineract.infrastructure.core.data.DataValidatorBuilder;
 import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidationException;
 import org.apache.fineract.infrastructure.core.service.DateUtils;
+import org.apache.fineract.infrastructure.event.business.BusinessEventListener;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanAdjustTransactionBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanApprovedBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanUndoApprovalBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanUndoDisbursalBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionMakeRepaymentPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanUndoWrittenOffBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanWrittenOffPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.organisation.monetary.domain.MoneyHelper;
 import org.apache.fineract.portfolio.account.PortfolioAccountType;
 import org.apache.fineract.portfolio.account.data.AccountTransferDTO;
 import org.apache.fineract.portfolio.account.domain.AccountTransferDetails;
 import org.apache.fineract.portfolio.account.domain.AccountTransferType;
 import org.apache.fineract.portfolio.account.service.AccountTransfersWritePlatformService;
-import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanAdjustTransactionBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanApprovedBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanUndoApprovalBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanUndoDisbursalBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionMakeRepaymentPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanUndoWrittenOffBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanWrittenOffPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction;
 import org.apache.fineract.portfolio.loanaccount.guarantor.GuarantorConstants;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java
index 817cde37e..efb5c819e 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanApplicationWritePlatformServiceJpaRepositoryImpl.java
@@ -61,17 +61,17 @@ import org.apache.fineract.infrastructure.entityaccess.domain.FineractEntityRela
 import org.apache.fineract.infrastructure.entityaccess.domain.FineractEntityToEntityMapping;
 import org.apache.fineract.infrastructure.entityaccess.domain.FineractEntityToEntityMappingRepository;
 import org.apache.fineract.infrastructure.entityaccess.exception.NotOfficeSpecificProductException;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanApprovedBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanCreatedBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanRejectedBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanUndoApprovalBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.organisation.staff.domain.Staff;
 import org.apache.fineract.portfolio.account.domain.AccountAssociationType;
 import org.apache.fineract.portfolio.account.domain.AccountAssociations;
 import org.apache.fineract.portfolio.account.domain.AccountAssociationsRepository;
 import org.apache.fineract.portfolio.accountdetails.domain.AccountType;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanApprovedBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanCreatedBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanRejectedBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanUndoApprovalBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.calendar.domain.Calendar;
 import org.apache.fineract.portfolio.calendar.domain.CalendarEntityType;
 import org.apache.fineract.portfolio.calendar.domain.CalendarFrequencyType;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java
index 6eadee3a4..b190699b3 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanArrearsAgingServiceImpl.java
@@ -33,19 +33,19 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.fineract.infrastructure.core.domain.JdbcSupport;
 import org.apache.fineract.infrastructure.core.service.DateUtils;
 import org.apache.fineract.infrastructure.core.service.database.DatabaseSpecificSQLGenerator;
-import org.apache.fineract.portfolio.businessevent.BusinessEventListener;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanAdjustTransactionBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanApplyOverdueChargeBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanDisbursalBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.charge.LoanAddChargeBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.charge.LoanWaiveChargeBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanChargePaymentPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanForeClosurePostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanRefundPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanTransactionMakeRepaymentPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanUndoWrittenOffBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanWaiveInterestBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
+import org.apache.fineract.infrastructure.event.business.BusinessEventListener;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanAdjustTransactionBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanApplyOverdueChargeBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanDisbursalBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.charge.LoanAddChargeBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.charge.LoanWaiveChargeBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanChargePaymentPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanForeClosurePostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanRefundPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanTransactionMakeRepaymentPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanUndoWrittenOffBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanWaiveInterestBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.loanaccount.domain.Loan;
 import org.apache.fineract.portfolio.loanaccount.domain.LoanCharge;
 import org.apache.fineract.portfolio.loanaccount.domain.LoanRepaymentScheduleInstallment;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
index 5d50eb2f4..bbb64ae64 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanWritePlatformServiceJpaRepositoryImpl.java
@@ -55,6 +55,31 @@ import org.apache.fineract.infrastructure.core.service.DateUtils;
 import org.apache.fineract.infrastructure.dataqueries.data.EntityTables;
 import org.apache.fineract.infrastructure.dataqueries.data.StatusEnum;
 import org.apache.fineract.infrastructure.dataqueries.service.EntityDatatableChecksWritePlatformService;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanAcceptTransferBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanAdjustTransactionBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanApplyOverdueChargeBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanCloseAsRescheduleBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanCloseBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanDisbursalBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanInitiateTransferBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanInterestRecalculationBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanReassignOfficerBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanRejectTransferBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanRemoveOfficerBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanUndoDisbursalBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanUndoLastDisbursalBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.LoanWithdrawTransferBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.charge.LoanAddChargeBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.charge.LoanDeleteChargeBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.charge.LoanUpdateChargeBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.charge.LoanWaiveChargeBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.charge.LoanWaiveChargeUndoBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanChargePaymentPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanUndoWrittenOffBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanWaiveInterestBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanWrittenOffPostBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.loan.transaction.LoanWrittenOffPreBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.organisation.holiday.domain.Holiday;
 import org.apache.fineract.organisation.holiday.domain.HolidayRepositoryWrapper;
@@ -85,31 +110,6 @@ import org.apache.fineract.portfolio.account.service.AccountAssociationsReadPlat
 import org.apache.fineract.portfolio.account.service.AccountTransfersReadPlatformService;
 import org.apache.fineract.portfolio.account.service.AccountTransfersWritePlatformService;
 import org.apache.fineract.portfolio.accountdetails.domain.AccountType;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanAcceptTransferBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanAdjustTransactionBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanApplyOverdueChargeBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanCloseAsRescheduleBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanCloseBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanDisbursalBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanInitiateTransferBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanInterestRecalculationBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanReassignOfficerBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanRejectTransferBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanRemoveOfficerBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanUndoDisbursalBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanUndoLastDisbursalBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.LoanWithdrawTransferBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.charge.LoanAddChargeBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.charge.LoanDeleteChargeBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.charge.LoanUpdateChargeBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.charge.LoanWaiveChargeBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.charge.LoanWaiveChargeUndoBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanChargePaymentPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanUndoWrittenOffBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanWaiveInterestBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanWrittenOffPostBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.loan.transaction.LoanWrittenOffPreBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.calendar.domain.Calendar;
 import org.apache.fineract.portfolio.calendar.domain.CalendarEntityType;
 import org.apache.fineract.portfolio.calendar.domain.CalendarInstance;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
index 78cb21f0f..32affda53 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanproduct/service/LoanProductWritePlatformServiceJpaRepositoryImpl.java
@@ -33,9 +33,9 @@ import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuild
 import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
 import org.apache.fineract.infrastructure.entityaccess.domain.FineractEntityAccessType;
 import org.apache.fineract.infrastructure.entityaccess.service.FineractEntityAccessUtil;
+import org.apache.fineract.infrastructure.event.business.domain.loan.product.LoanProductCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
-import org.apache.fineract.portfolio.businessevent.domain.loan.product.LoanProductCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.charge.domain.Charge;
 import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
 import org.apache.fineract.portfolio.delinquency.domain.DelinquencyBucket;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainServiceJpa.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainServiceJpa.java
index 713dd416b..f0457fea7 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainServiceJpa.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/domain/SavingsAccountDomainServiceJpa.java
@@ -31,13 +31,13 @@ import java.util.UUID;
 import org.apache.fineract.accounting.journalentry.service.JournalEntryWritePlatformService;
 import org.apache.fineract.infrastructure.configuration.domain.ConfigurationDomainService;
 import org.apache.fineract.infrastructure.core.service.DateUtils;
+import org.apache.fineract.infrastructure.event.business.domain.savings.transaction.SavingsDepositBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.transaction.SavingsWithdrawalBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.organisation.monetary.domain.ApplicationCurrencyRepositoryWrapper;
 import org.apache.fineract.organisation.monetary.domain.Money;
 import org.apache.fineract.organisation.monetary.domain.MoneyHelper;
-import org.apache.fineract.portfolio.businessevent.domain.savings.transaction.SavingsDepositBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.transaction.SavingsWithdrawalBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.paymentdetail.domain.PaymentDetail;
 import org.apache.fineract.portfolio.savings.SavingsAccountTransactionType;
 import org.apache.fineract.portfolio.savings.SavingsTransactionBooleanValues;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
index 9c76ec8c0..95a0dae14 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/DepositApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
@@ -48,15 +48,15 @@ import org.apache.fineract.infrastructure.core.exception.PlatformApiDataValidati
 import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
 import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
 import org.apache.fineract.infrastructure.core.service.DateUtils;
+import org.apache.fineract.infrastructure.event.business.domain.deposit.FixedDepositAccountCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.deposit.RecurringDepositAccountCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.organisation.staff.domain.Staff;
 import org.apache.fineract.organisation.staff.domain.StaffRepositoryWrapper;
 import org.apache.fineract.portfolio.account.domain.AccountAssociationType;
 import org.apache.fineract.portfolio.account.domain.AccountAssociations;
 import org.apache.fineract.portfolio.account.domain.AccountAssociationsRepository;
-import org.apache.fineract.portfolio.businessevent.domain.deposit.FixedDepositAccountCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.deposit.RecurringDepositAccountCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.calendar.domain.Calendar;
 import org.apache.fineract.portfolio.calendar.domain.CalendarEntityType;
 import org.apache.fineract.portfolio.calendar.domain.CalendarFrequencyType;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java
index 7d40ce214..021870c76 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsAccountWritePlatformServiceJpaRepositoryImpl.java
@@ -62,6 +62,10 @@ import org.apache.fineract.infrastructure.core.service.DateUtils;
 import org.apache.fineract.infrastructure.dataqueries.data.EntityTables;
 import org.apache.fineract.infrastructure.dataqueries.data.StatusEnum;
 import org.apache.fineract.infrastructure.dataqueries.service.EntityDatatableChecksWritePlatformService;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsActivateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsCloseBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsPostInterestBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.organisation.holiday.domain.HolidayRepositoryWrapper;
 import org.apache.fineract.organisation.monetary.domain.ApplicationCurrencyRepositoryWrapper;
@@ -77,10 +81,6 @@ import org.apache.fineract.portfolio.account.domain.StandingInstructionRepositor
 import org.apache.fineract.portfolio.account.domain.StandingInstructionStatus;
 import org.apache.fineract.portfolio.account.service.AccountAssociationsReadPlatformService;
 import org.apache.fineract.portfolio.account.service.AccountTransfersReadPlatformService;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsActivateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsCloseBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsPostInterestBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.charge.domain.Charge;
 import org.apache.fineract.portfolio.charge.domain.ChargeRepositoryWrapper;
 import org.apache.fineract.portfolio.charge.domain.ChargeTimeType;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
index b5a0932ff..5fbce4dd3 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsApplicationProcessWritePlatformServiceJpaRepositoryImpl.java
@@ -51,14 +51,14 @@ import org.apache.fineract.infrastructure.core.service.DateUtils;
 import org.apache.fineract.infrastructure.dataqueries.data.EntityTables;
 import org.apache.fineract.infrastructure.dataqueries.data.StatusEnum;
 import org.apache.fineract.infrastructure.dataqueries.service.EntityDatatableChecksWritePlatformService;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsApproveBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.savings.SavingsRejectBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext;
 import org.apache.fineract.organisation.monetary.domain.Money;
 import org.apache.fineract.organisation.staff.domain.Staff;
 import org.apache.fineract.organisation.staff.domain.StaffRepositoryWrapper;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsApproveBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.savings.SavingsRejectBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.client.domain.AccountNumberGenerator;
 import org.apache.fineract.portfolio.client.domain.Client;
 import org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountWritePlatformServiceJpaRepositoryImpl.java
index 233eaa915..c84a70047 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareaccounts/service/ShareAccountWritePlatformServiceJpaRepositoryImpl.java
@@ -38,10 +38,10 @@ import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuilder;
 import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
 import org.apache.fineract.infrastructure.core.service.DateUtils;
+import org.apache.fineract.infrastructure.event.business.domain.share.ShareAccountApproveBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.share.ShareAccountCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.accounts.constants.ShareAccountApiConstants;
-import org.apache.fineract.portfolio.businessevent.domain.share.ShareAccountApproveBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.share.ShareAccountCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.client.domain.AccountNumberGenerator;
 import org.apache.fineract.portfolio.note.domain.Note;
 import org.apache.fineract.portfolio.note.domain.NoteRepository;
diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/service/ShareProductWritePlatformServiceJpaRepositoryImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/service/ShareProductWritePlatformServiceJpaRepositoryImpl.java
index e8f7fc345..185bbb424 100644
--- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/service/ShareProductWritePlatformServiceJpaRepositoryImpl.java
+++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/shareproducts/service/ShareProductWritePlatformServiceJpaRepositoryImpl.java
@@ -32,8 +32,8 @@ import org.apache.fineract.infrastructure.core.data.CommandProcessingResult;
 import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuilder;
 import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException;
 import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper;
-import org.apache.fineract.portfolio.businessevent.domain.share.ShareProductDividentsCreateBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.service.BusinessEventNotifierService;
+import org.apache.fineract.infrastructure.event.business.domain.share.ShareProductDividentsCreateBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.service.BusinessEventNotifierService;
 import org.apache.fineract.portfolio.shareproducts.constants.ShareProductApiConstants;
 import org.apache.fineract.portfolio.shareproducts.domain.ShareProduct;
 import org.apache.fineract.portfolio.shareproducts.domain.ShareProductDividendPayOutDetails;
diff --git a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/service/DelayedExternalEventServiceTest.java b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/service/DelayedExternalEventServiceTest.java
index 6f05a7a6a..8ecf62f46 100644
--- a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/service/DelayedExternalEventServiceTest.java
+++ b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/service/DelayedExternalEventServiceTest.java
@@ -24,8 +24,8 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 
 import java.util.List;
-import org.apache.fineract.portfolio.businessevent.domain.BulkBusinessEvent;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.BulkBusinessEvent;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/service/ExternalEventServiceTest.java b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/service/ExternalEventServiceTest.java
index b65c8c907..f560b80a0 100644
--- a/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/service/ExternalEventServiceTest.java
+++ b/fineract-provider/src/test/java/org/apache/fineract/infrastructure/event/external/service/ExternalEventServiceTest.java
@@ -32,12 +32,12 @@ import java.util.Map;
 import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType;
 import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenant;
 import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil;
+import org.apache.fineract.infrastructure.event.business.domain.BusinessEvent;
 import org.apache.fineract.infrastructure.event.external.repository.ExternalEventRepository;
 import org.apache.fineract.infrastructure.event.external.repository.domain.ExternalEvent;
 import org.apache.fineract.infrastructure.event.external.service.idempotency.ExternalEventIdempotencyKeyGenerator;
 import org.apache.fineract.infrastructure.event.external.service.serialization.BusinessEventSerializerFactory;
 import org.apache.fineract.infrastructure.event.external.service.serialization.serializer.BusinessEventSerializer;
-import org.apache.fineract.portfolio.businessevent.domain.BusinessEvent;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;