Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: Using this gateway for production? #91

Open
no-veternarian23 opened this issue Oct 24, 2023 · 1 comment
Open

Question: Using this gateway for production? #91

no-veternarian23 opened this issue Oct 24, 2023 · 1 comment

Comments

@no-veternarian23
Copy link

no-veternarian23 commented Oct 24, 2023

Hello,

I am building a CSMS server on aws and wanted to evaluate using this gateway in a production environment. I am a little confused with how to architect this (as my understanding with a few AWS services are at a novice level).

  1. I will need to extend the message processor in the gateway code to support different topics other than heartbeat, bootnotification & statusNotification, right? Including all actions under ocpp 1.6 and 2.0.1 ? Or do we just create rules in in AWS IoT to route certain messages to a DynamoDb table?
  2. Essentially this gateway should be extended such that all incoming messages are routed to DyanamoDb and there we can have Dynamodb streams to act on relevant/interesting topics OR would you suggest the message processor to route relevant topics (like startTransation) to an appropriate AWS service (responsible for handling it) OR should all the messages be pushed to SQS and then my AWS service subscribe to relevant topic to act on it?
  3. To what extent is the ocpp library used here? How do we leverage it fully with the ocpp gateway?
  4. Why would you recommend going for such a solution instead of building our own server?
@galinsky
Copy link
Collaborator

Your questions related to architecture would be best handled in a design consultation with your AWS Solutions Architect--do you have one assigned to your account?

You are correct that the message processor will need to be extended to support all (or those you care about) OCPP messages. Depending on the message, you may choose to just log it (e.g., Heartbeat), or log and take action (e.g., StatusNotification). IoT topics are a powerful mechanism for routing or fan out; you could do this downstream of DynamoDB as you suggested, but you'd have to create a routing mechanism whereas you already have a highly scalable one in IoT.

I would generally opt for using IoT route to an OCPP message-specific SQS queue which would trigger an OCPP message-specific Lambda function to take action. If actions require more complex orchestration, I would suggest using Step Functions for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants